问题标签 [cmake]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
3625 浏览

cmake - Cmake的未定义参考链接错误

我正在定制通过 cmake 构建的 qgis 源代码。

它有一个包含许多子目录的源代码树(其中也包含子目录)。

整个源代码树分为几个模块,如core,具有GIS核心组件,gui负责gui,app,负责主应用程序(包含main.cpp)和其他模块。

问题是我遇到了一个需要访问不同模块中的静态类成员的要求。准确地说是 Gui 模块中 QgisApp 类的一些成员。

因此,在 gui 模块的 .cpp 之一中正常包含 qgisapp.h 给了我对我想要访问的 mamber 的未定义引用。后来我将 .h 和 .cpp 包含在位于 Gui 内的 CMakeLists.txt 文件中模块的根目录,然后再次运行 cmake 以使 Makefile 具有正确的包含。但是如果未定义的引用很多,这实际上会增加数量(可能是因为我添加到 CMakeLists.txt 中的 .h 和 .cpp 本身包含其他 . h 和 .cpp 在应用模块自己的 CMakeLists.txt 中有引用)。

那么,如何在其他模块中使用某个模块的某个类的成员,这些模块是用放置在其各自根目录中的不同 CMakeLists.txt 集构建的?

这个问题与qgis没有特别的关系,但可以遇到与qgis类似的任何源代码树。所以它基本上是一个与Cmake相关的问题。

希望我能够解决我的问题。

帮助将不胜感激。

谢谢。

0 投票
2 回答
25948 浏览

xcode - CMake、Xcode 和 Unix Makefile

我一直在使用经典的 Unix Makefile 生成器,直到我找到一个解释 CMake 可以使用“cmake -G Xcode”生成一个不错的 xcode 项目文件的网页,所以我在我的源目录中运行了该命令,我得到了一个不错的 xcode 项目。这很好,但我面临一些缺点,想知道是否有解决方案:

  • 现在我不能使用 unix makefiles 构建树(我曾经在构建目录中运行 cmake ../myproj 然后 make 命令)这不再起作用(我想项目目录中的临时文件负责)

  • 我的一些头文件是由 cmake 生成的(myproj.h.in 变成了 myproj.h,例如包含在一些测试中),但我在我得到的 xcode 项目中找不到这些文件。

在此先感谢您就如何将 xcode 项目和 unix makefile 结合使用以同时使用两者的任何好的建议。

0 投票
2 回答
3127 浏览

xcode - 为什么 Xcode 不能识别我的 LIBRARY_SEARCH_PATHS?

我已经设置LIBRARY_SEARCH_PATHS/opt/local/lib,并验证了有问题的库在那里(我正在链接到GLEW):

但是 Xcode 给了我链接器错误

我正在使用 CMake 生成 Xcode 项目,因此我不想明确修改 Xcode 项目(如果有人建议将其添加为框架或类似的东西)。Xcode 识别USER_HEADER_SEARCH_PATHS良好(如在这个问题中);为什么它在这里不起作用?

0 投票
2 回答
14864 浏览

iphone - 如何设置 CMake 为 iPhone 构建库

我正在尝试使用 CMake 通过手动设置某些属性来为 iPhone 生成 Xcode 配置。(这甚至是正确的方法吗?)我的 CMake 文件如下所示:

首先,这似乎不起作用 - 在生成的 Xcode 项目(我正在运行cmake . -G Xcode)中,SDKROOT仍然设置为空,因此它显示“当前 Mac OS”。

其次,假设这是正确的方法,我该如何仅为配置设置属性Debug-iPhone

0 投票
2 回答
2195 浏览

cmake - Cmake - 设置视觉工作室中间目录

如何停止 CMake 将 .dir 添加到我的 IntermediateDirectory 的末尾?

例如:

0 投票
3 回答
27592 浏览

iphone - 如何设置 CMake 为 iPhone 构建应用程序

这与我之前的问题密切相关,即使用 CMake 在 iPhone 上构建静态库。我得到了它的工作设置CMAKE_OSX_SYSROOT

但是,这不适用于构建应用程序。我的CMakeLists.txt样子:

几点注意事项:

  • 我明确给出了-framework链接选项,因为find_library不适用于所有框架(它找到了大多数框架,但没有找到OpenGLES)。我不明白为什么,因为它们都在同一个文件夹${SDK}/System/Library/Frameworks中。这让我相信我做错了什么,但我不知道是什么。
  • 我添加MACOSX_BUNDLEadd_executable命令中,以便生成的产品类型将com.apple.product-type.application代替com.apple.product-type.tool,这在 iPhone 上显然不存在。

无论如何,该应用程序可以正确编译和链接,但是当我在模拟器中运行它时,我会感到害怕

在 google 和 stackoverflow 上有很多关于此问题的报告实例,但所有解决方案都涉及清理或创建新项目和移动文件;但是我在 CMake 完成它的工作之后编译了一个新的副本,所以这些都不适用。

我在 CMake 邮件列表中找到了这个线程,但它只报告了构建库的成功,然后逐渐消失。

0 投票
3 回答
894 浏览

unit-testing - 单元测试构建文件

单元测试构建文件的最佳策略是什么?

我问的原因是我的公司生产高度可靠的嵌入式设备。软件补丁不是一种选择,因为它们花费了我们的客户数千美元来分发。因此,我们有非常严格的代码质量程序(单元测试、代码审查、可追溯性等)。这些程序正在应用于我们的构建文件(如果你必须知道,我希望是自动工具),但如果感觉就像一个 hack。

呃......项目编译......将构建文件标记为已审核和单元测试。

必须有更好的方法。想法?

0 投票
3 回答
8936 浏览

c++ - 如何使用 CMake 将文件添加到 Eclipse CDT 项目?

我在使用 CMake 将源文件和头文件添加到我的 Eclipse CDT 项目中时遇到问题。在我的测试项目(生成和构建良好)中,我有以下 CMakeLists.txt:

这工作正常,但生成的 Eclipse 项目文件不包含指向源文件或头文件的链接。有谁知道为什么?我必须使用任何其他 cmake 命令将文件实际添加到项目中吗?

0 投票
1 回答
7825 浏览

python - 使用 cmake 构建 Python 共享对象绑定,依赖于外部库

我们有一个名为 dbookpy.c 的 ac 文件,它将提供一个 Python 绑定一些 C 函数。

接下来我们决定用 cmake 构建一个合适的 .so,但似乎我们在绑定中链接外部库“libdbook”方面做错了:

CMakeLists.txt 如下:

然后我们构建:

到现在为止还挺好。在 Python 中测试:

嗯。链接器错误。看起来它没有链接 libdbook:

不它不是。与 libdbook 的正确链接如下所示:

有谁知道为什么这不起作用?

非常感谢。

埃德

0 投票
6 回答
40046 浏览

visual-studio - 如何使用 CMake 和 Visual Studio 设置路径环境变量来运行测试

我正在使用 CMake 生成 Visual Studio 项目文件。我想在设置 PATH 环境变量后运行测试可执行文件,以便它能够加载所需的 dll。我按照http://www.mail-archive.com/cmake@cmake.org/msg21493.html上的讨论进行了尝试,但它不起作用。

您是否为此目的使用了 CMake 和 Visual Studio?请分享您的经验。

此外,我发现调试我的 CMake 脚本没有简单的方法,例如查看它分配给 PATH 变量的值。设置 CMake 详细信息CMAKE_VERBOSE_MAKEFILE并没有帮助。我将如何自己调试它?