c++ - CMake 和 Visual Studio 构建错误

标签 c++ visual-studio-2012 cmake freetype freetype2

我一直在尝试使用 cmake 编译 tulip 以生成 visual studio 2012 项目文件。这给我带来了很多麻烦。我不知道如何构建它。我一直在尝试让 visual studio 构建它 4 天,我非常沮丧。本质上,我按照步骤 here , 然后根据 these instructions 设置变量 CMAKE_LIBRARY_PATH 和 CMAKE_INCLUDE_PATH .

要到达我所在的位置,你所要做的就是download tulip , 和:

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

在这些说明中以及在让 CMake 生成 visual studio 构建文件的过程中,它特别要求提供 freetype 的位置。但是在我的构建中,它不知道如何链接 freetype 库。

Here are the errors that I get

Here is my CMakeCached.txt

我知道很多人并不想完全尝试去复制构建环境,所以我已经将我的构建目录上传到 Dropbox。你可以把整个东西拉下来,然后在 cmake gui 中打开它,并在那里打开 visual studio 文件。 https://www.dropbox.com/sh/qsvukh9t5gb6bvt/tOfOBxWgd0

最佳答案

您指向的链接器错误(主要是“ Unresolved external ”错误)表明链接命令行上缺少库。

这很可能发生,因为 tulip 项目中的 target_link_libraries 调用要么被跳过,要么被调用的库名称与磁盘上的库名称不匹配。

在 Visual Studio 中打开解决方案并右键单击该项目并选择“属性”——查看“附加依赖项”字段中的“链接器 > 输入”面板。那应该列出它想要链接到的所有库。那里列出了一个 freetype 库吗?该库是否存在于您磁盘上的引用位置?

tulip 项目中可能有错误,或者您的 freetype 构建/安装有问题...

UPDATE AFTER SOME CHAT:

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

关于c++ - CMake 和 Visual Studio 构建错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18824604/

相关文章:

c++ - 向 map 添加类

visual-studio - MSBuild 不包含 "VCTargetsPath"属性的值

cmake - CMake 中生成的依赖文件

c++ - 编译myblock需要稀粥

c++ - CMake 正在删除项目 c++

c++ - USB 传输的 LibUSB C++ 格式不同

c++ - 函数采用指向集合的指针的优点,以避免在返回时复制?

c++ - 不同文件夹上的 Makefile

c++ - Visual Studio & C++ : Use filters as directories

c# - 在 C# T4 模板中通过 DTE 访问项目