CMake и Visual Studio ошибки сборки

Я пытался скомпилировать тюльпан с помощью cmake для создания файлов проекта visual studio 2012. Это доставляет мне много хлопот. Я не знаю, как заставить это построить. Я пытался заставить визуальную студию строить это в течение 4 дней, и я очень расстроен. По сути, я следую за шагами Вот, и затем установите переменные CMAKE_LIBRARY_PATH AND CMAKE_INCLUDE_PATH в соответствии с эти инструкции.

Чтобы добраться туда, где я нахожусь, все, что вам нужно сделать, это скачать тюльпан, а также:

  1. Распакуйте его, создайте отдельный каталог для сборки вне этого исходного каталога
  2. Откройте CMake-gui для исходного кода и соберите каталоги
  3. Хит настроить. Проверьте использование qt5, скажите, где находится qmake (убедитесь, что это qt5)
  4. Вам нужны некоторые зависимости, как описано в учебнике The Independent CMake. Хватай все эти зависимости
  5. Продолжая нажимать «настроить», укажите каждый каталог, к которому он обращается при возникновении ошибок. Следует попросить о свободном наборе, glew, zlib и sphinx. Он не должен спрашивать, где находятся libxml, libpng или libjpeg. Я не знаю, почему он не просит их.
  6. Создайте, а затем перейдите к созданному вами ALL_BUILD. Откройте его с визуальной студией
  7. попробуйте построить его с визуальной студией.

В этих инструкциях и в процессе получения CMake для генерации файлов сборки visual studio он специально запрашивает местоположение freetype. Но в моей сборке нет понятия, как связать библиотеку freetype.

Вот ошибки, которые я получаю

Вот мой CMakeCached.txt

Я знаю, что многим людям не захочется точно пытаться копировать среду сборки, поэтому я загрузил свой каталог сборки в dropbox. Вы можете вытащить всю вещь вниз, а затем открыть ее в cmake gui и открыть там файлы Visual Studio.
https://www.dropbox.com/sh/qsvukh9t5gb6bvt/tOfOBxWgd0

2

Решение

Ошибки компоновщика, на которые вы указываете (в основном «неразрешенные внешние» ошибки), указывают на то, что в командной строке ссылки отсутствуют библиотеки.

Скорее всего, это происходит потому, что вызовы target_link_libraries в проекте tulip либо пропускаются, либо вызываются с именами библиотек, которые не совпадают с именами библиотек на диске.

Откройте решение в Visual Studio, щелкните правой кнопкой мыши проект и выберите «Свойства» — посмотрите на панель «Компоновщик> Ввод» в поле «Дополнительные зависимости». Это должно перечислить все библиотеки, на которые он хочет сослаться. Есть ли здесь библиотека freetype? Существует ли эта библиотека в указанном месте на вашем диске?

В проекте tulip может быть ошибка, или что-то не так с вашей сборкой / установкой freetype …

UPDATE AFTER SOME CHAT:

Или, может быть, у вас есть несколько библиотек, созданных для x86 а некоторые для x64… или, может быть, некоторые для отлаживать а некоторые для Релиз… или, может быть, даже некоторые с MinGW компилятор и некоторые с Visual Studio компилятор. Если это так, начните все сначала с чистого листа и постройте все с помощью согласованного компилятора, типа конфигурации и архитектуры. Затем отчитайтесь снова с обновлением и посмотрите, остались ли проблемы.

1

Другие решения

Я делаю с Дейвом,

Вы должны попытаться исправить вашу ошибку 1 на 1.
Первая ошибка, кажется, ошибка ссылки:

Error   1   error LNK2019: unresolved external symbol gzread referenced in function "public: virtual int __cdecl gzstreambuf::underflow(void)" (?underflow@gzstreambuf@@UEAAHXZ)    C:\Users\kenne_000\tulip-build\tulip-build-debug\thirdparty\gzstream\gzstream.obj   gzstream

gzstream — это сторонняя библиотека, входящая в состав источника тюльпанов:

thirdparty\gzstream

от

thirdparty\gzstream\CMakeLists.txt

Вы можете видеть, что недостающие символы должны поступать из ZLIB.
Однако ваш CMakeCache.txt указывает, что

ZLIB_LIBRARY:FILEPATH=C:/Users/kenne_000/dependencies/zlib128-dll/lib/zdll.lib

найден.

Таким образом, вопрос может заключаться в том, была ли эта зависимость откомпилирована одним и тем же компилятором?
У вас нет проблем с компилятором имен?

0

По вопросам рекламы [email protected]