繁体   English   中英

CMake和Visual Studio构建错误

[英]CMake And Visual Studio build errors

我一直在尝试使用cmake编译郁金香以生成Visual Studio 2012项目文件。 这给我带来很多麻烦。 我不知道该如何构建。 我一直试图让Visual Studio来构建它已有4天了,对此我感到非常沮丧。 本质上,我按照此处的步骤进行操作,然后根据这些说明设置变量CMAKE_LIBRARY_PATH和CMAKE_INCLUDE_PATH。

要到达我所在的位置,只需下载tulip ,然后:

  1. 解压缩它,在此源目录之外创建一个单独的构建目录
  2. 打开CMake-gui到源代码并构建目录
  3. 点击配置。 检查使用qt5,告诉它qmake在哪里(确保它是qt5)
  4. 如The Independent CMake教程中所述,您需要一些依赖项。 抓住所有那些依赖
  5. 当您继续单击configure时,请指定错误时要求的每个目录。 它应该询问freetype,glew,zlib和sphinx。 它不应该询问libxml或libpng或libjpeg的位置。 我不知道为什么它不要求那些。
  6. 生成,然后浏览到您生成的ALL_BUILD。 用Visual Studio打开
  7. 尝试使用Visual Studio构建它。

在这些说明中以及在使CMake生成Visual Studio构建文件的过程中,它特别要求freetype的位置。 但是在我的构建中,它不知道如何链接自由类型库。

这是我得到的错误

这是我的CMakeCached.txt

我知道很多人都不想完全尝试复制构建环境,因此我已将构建目录上载到Dropbox。 您可以下拉整个内容,然后在cmake gui中将其打开,并在其中也打开Visual Studio文件。 https://www.dropbox.com/sh/qsvukh9t5gb6bvt/tOfOBxWgd0

您指向的链接器错误(主要是“未解决的外部错误”)表明链接命令行上缺少库。

这很可能是由于郁金香项目中的target_link_libraries调用被跳过或以与磁盘上的库名不匹配的库名被调用。

在Visual Studio中打开解决方案,然后右键单击该项目,然后选择“属性”-在“其他依赖项”字段中查看“链接器>输入”面板。 那应该列出它要链接的所有库。 那里有一个自由类型库吗? 该库在磁盘上的引用位置中是否存在?

郁金香项目中可能有错误,或者Freetype的构建/安装中可能有问题...

UPDATE AFTER SOME CHAT:

也可能是您有一些针对x86构建的库,一些针对x64构建的库...,或者某些针对Debug的库 ,某些针对Release的库 ...,甚至有些是使用MinGW编译器而有些是使用Visual Studio编译器。 如果是这种情况,请从头开始,并使用一致的编译器,配置类型和体系结构构建所有内容。 然后再次报告更新,以查看问题是否仍然存在。

我和戴夫在一起

您应该尝试通过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

被发现。

因此问题可能是,此依赖项是否已使用同一编译器进行编译? 您没有编译器专有的名称修改问题吗?

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM