CMake 和 Visual Studio 构建错误
CMake And Visual Studio build errors
我一直在尝试使用cmake编译郁金香来生成Visual Studio 2012项目文件。这给我带来了很多麻烦。我不知道如何构建它。我一直在尝试让视觉工作室构建它 4 天了,我非常沮丧。本质上,我按照此处的步骤进行操作,然后根据这些说明CMAKE_LIBRARY_PATH和CMAKE_INCLUDE_PATH设置变量。
要到达我所在的位置,您所要做的就是下载郁金香,然后:
- 解压缩它,在此源目录之外创建一个单独的构建目录
- 打开 CMake-gui 到源和构建目录
- 点击配置。检查使用 qt5,告诉它 qmake 在哪里(确保它是 qt5)
- 需要一些依赖项,如独立 CMake 教程中所述。获取所有这些依赖项
- 当您继续点击配置时,请指定它出错时要求的每个目录。它应该要求freetype,glew,zlib和sphinx。它不应该询问libxml或libpng或libjpeg在哪里。我不知道为什么它不要求这些。
- 生成,然后浏览到已生成的ALL_BUILD。使用视觉工作室打开它
- 尝试使用 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 构建的库......或者也许有些用于调试,一些用于发布...甚至可能有些使用MinGW编译器,有些使用Visual Studio编译器。如果是这种情况,请从头开始,并使用一致的编译器、配置类型和体系结构构建所有内容。然后再次报告更新,看看问题是否仍然存在。
我和戴夫一起做,
您应该尝试逐一修复错误。第一个错误似乎是链接错误:
Error 1 error LNK2019: unresolved external symbol gzread referenced in function "public: virtual int __cdecl gzstreambuf::underflow(void)" (?underflow@gzstreambuf@@UEAAHXZ) C:Userskenne_000tulip-buildtulip-build-debugthirdpartygzstreamgzstream.obj gzstream
GZSTREAM是郁金香源中包含的第三方库:
thirdpartygzstream
从
thirdpartygzstreamCMakeLists.txt
您可以看到缺少的符号应该来自 ZLIB。但是,您的 CMakeCache.txt 指示
ZLIB_LIBRARY:FILEPATH=C:/Users/kenne_000/dependencies/zlib128-dll/lib/zdll.lib
被发现。
所以问题可能是,这个依赖项是用同一个编译器编译的吗?您没有特定于编译器的名称重整问题吗?
- Agora.io 虚幻引擎插件构建错误
- 尝试将 boost::stacktrace 添加到 CMake 项目时出现构建错误
- Arch Linux.AUR 包 mysql 不能用 makepkg 构建.错误:构建 () 中出现故障
- 组件上的虚幻引擎可蓝图UFUNCTION会导致构建错误
- 尝试构建 xerces c++ 解析器。Netbeans 和命令行构建错误未定义对"xercesc_3_2..."的引用
- pair的两个构造函数几乎相同,为什么不生成构建错误?
- 发生 Qt5.11 应用插件构建错误:信号和插槽参数不兼容
- Visual Studio 2017 中的 Tesseract 3.05 构建错误
- Eclipse 构建错误在默认的 hello world 上
- C++ CMake 构建错误:未定义对"boost::throw_exception(std::exception const&)"的引用
- 在 solaris 上增加 1.64 构建错误
- xgboost 构建错误:参数包未扩展为"..":
- 使用GCC 4.8构建错误:数组用作初始化器
- 编译 Java TD 客户端时出现构建错误
- 如何修复安卓工作室中的NDK构建错误
- C++ Cassandra 构建错误
- 我在 MinGW 和 VS 代码"g++ not recognized as a cmdlet..."时遇到构建错误
- Microsoft Visual Studio 2008,版本9.0.30739.1 SP,DLL构建错误
- 使用PPConsul(C 的领事客户端)构建错误的C 项目
- WURFL nginx 构建错误