С++ MSVS Помогите узнать для какой версии исходник.

Тема в разделе "WASM.BEGINNERS", создана пользователем ajak, 26 июн 2009.

  1. Booster

    Booster New Member

    Публикаций:
    0
    Регистрация:
    26 ноя 2004
    Сообщения:
    4.860
    От версии к версии компилятора много может поменяться. Автор не в состоянии учесть все существующие виды и версии, по-этому без напильника не всегда выходит.

    Zlib требует libc, а её в 2005 студии вообще нету. ^). Исходников Zlib там нет. Её надо качать и собирать. Только думаю у тебя с этим тоже возникнут проблемы, так как напильник и здесь будет нужен. ^)
     
  2. ajak

    ajak New Member

    Публикаций:
    0
    Регистрация:
    24 окт 2007
    Сообщения:
    463
    Ага, разобрался. Понял что она была раньше в 2003. Теперь вот найти бы её, или исходники чтоб скомпилить. Не подскажите где взять исходники чтоб собрать и подключить?
     
  3. Booster

    Booster New Member

    Публикаций:
    0
    Регистрация:
    26 ноя 2004
    Сообщения:
    4.860
    По-моему ты снова не понял. Попробую объяснить доходчиво. ^)
    libc это библиотека рантайма 2003 студии, некая библиотека служебных функций, которые нужны программам и другим библиотекам для работы. В 2005 студии есть свой рантайм. Zlib была собрана в 2003 студии, с предположением что она будет использовать libc - естественно рантайм 2003 студии. Когда ты собираешь программу к ней линкуется рантайм 2005 студии, но Zlib была собрана в 2003 и линковщик пытается прилинковать к ней libc. Что у него конечно не получается, да и нельзя линковать два разных рантайма, получишь ошибки во время выполнения. Тут нужно либо пересобрать Zlib в 2005 студии, тогда она будет использовать один и тот же рантайм с основной программой, либо использовать динамическую Zlib, так как динамическая не линкуется статически, а связывается во время выполнения.

    Внимательно читай, что я пишу и делай всё так. ^). Тебе нужно скачать исходники Zlib с интернета, собрать её в 2005 студии и заменить ту которая лежит в проекте. Но думаю для тебя это снова будет трудной задачей, так она снова сразу не соберётся. Я её уже собрал, и могу тебе её выслать. ^) Фух, всё, что-то ещё не понятно?
     
  4. Booster

    Booster New Member

    Публикаций:
    0
    Регистрация:
    26 ноя 2004
    Сообщения:
    4.860
    Вот она. Кидай её в папку src, нажимай rebuild и всё должно собраться.
     
  5. ajak

    ajak New Member

    Публикаций:
    0
    Регистрация:
    24 окт 2007
    Сообщения:
    463
    Да, спасибо, всё получилось,
    Уменя есть вопрос как пользоваться тем makefile.
     
  6. Booster

    Booster New Member

    Публикаций:
    0
    Регистрация:
    26 ноя 2004
    Сообщения:
    4.860
    Я немного не правильно пояснил. В makefile есть цели, зависимости и правила. Например:
    Код (Text):
    1. $(GENSPATH)\gens.exe: $(OBJS)
    2.     $(LINK) /SUBSYSTEM:WINDOWS /OUT:"$@" /PDB:"$(SYMPATH)\$(@B).pdb" $(GENS_LIBS) $**
    $(GENSPATH)\gens.exe: - это цель.
    $(OBJS) - зависимость.
    $(LINK) /SUBSYSTEM:WINDOWS /OUT:"$@" /PDB:"$(SYMPATH)\$(@B).pdb" $(GENS_LIBS) - правило.

    Mожно указать конкретную цель и она будет сделана, например в том makefile есть цель clean, если написать: nmake clean, то произойдёт очистка. Если цель не указать, то будет выполнена самая первая. Ну а почему не собирается напрямую makefile, то смотри диагностические сообщения в консоли. Вообще там помимо стандартных библиотек есть зависимость по dsound.lib которая в DirectXSdk и другие зависимости, а в студии у тебя уже скорее всего это настроено. Смотри чего ему не хватает и устанавливай соответствующие переменные окружения. Потом если посмотришь makefile то увидишь, что там ещё проверяется переменная RELEASE. Если сделать SET RELEASE=1, то будет release сборка, иначе debug.
     
  7. ajak

    ajak New Member

    Публикаций:
    0
    Регистрация:
    24 окт 2007
    Сообщения:
    463
    Вот продолжаю разбираться. Заметил вот что , если удалить мэйк файл то проект не собирается.
    Подскажите где в студии он пордключается а то не нашел. Потом там же исходники на асме есть как они компилятся и подключаеются тоже через мэйк файл, или потому что они обяъвлены как экстерн, сами через ассемблер прроходят. Просто такую связку асм +си не встречал ещё в исхощниках. Хочу разобраться
     
  8. Booster

    Booster New Member

    Публикаций:
    0
    Регистрация:
    26 ноя 2004
    Сообщения:
    4.860
    Что значит где подключается makefile? В проекте студии и подключается, свойства проекта открой и увидишь.

    Без разницы асм, си или что угодно. Вначале компилиться любым компилятором: cl, masm, nasm, fasm и т.д, затем линкуется. В проекте и makefile можно указывать любой компилятор.
     
  9. paralvic

    paralvic Пархоменко Александр Викторович

    Публикаций:
    0
    Регистрация:
    20 ноя 2010
    Сообщения:
    294
    Адрес:
    Нижний Новгород
    оинковка в помощь ;)