cmake相关内容

CMake:多库包导出中的依赖项管理

我有一个名为 MYLIBS 的包,包含两个库,lib1 和 lib2,我想通过配置文件导出包裹.项目结构如下: ├── Lib1│ ├── CMakeLists.txt│ ├── lib1-class.cpp│ └── lib1-class.h├── lib2│ └── CMakeLists.txt│ ├── lib2-class.cpp│ ├── lib2-class.h├── cmake│ ..
发布时间:2022-01-15 23:13:15 C/C++开发

能够预先编译依赖项的 C++ Buildsystem

我正在为 C++ 游戏项目设置构建环境.我们的主要要求是不仅能够构建我们的游戏代码,还能够构建它的依赖项(Ogre3D、Cegui、boost 等).此外,我们希望能够在 Linux 和 Windows 上构建,因为我们的开发团队由使用不同操作系统的成员组成. Ogre3D 使用 CMake 作为其构建工具.这就是为什么到目前为止我们的项目也基于 CMake.一旦在每个团队成员系统上手动设置 ..
发布时间:2022-01-15 23:03:38 C/C++开发

cmake,迷失在全局变量的概念中(以及 PARENT_SCOPE 或 add_subdirectory 替代方案)

我有一个 cmake 项目,其中有一些模块,我正在使用 Find-*.cmake 将共享模块包含在应用程序中.由于没有考虑到我添加的每个模块,我为链接器定义了一种全局 LIB 变量: # 在 Find-*.cmake 或模块的 CMakeLists.txt 中:设置(LIB ${LIB} ...) 所以在使用某些模块的最终应用程序之一中,我可以这样做: target_link_librari ..
发布时间:2022-01-15 22:36:50 其他开发

如何使用 cmake 测试预期会因异常而失败的进程?(例如,由于 clang 的地址清理程序导致的失败)

我有一些测试可以测试 clang 的地址清理程序是否捕获特定错误.(我想确保我对它可以捕获的错误类型的理解是正确的,并且未来的版本会继续捕获我期望它们捕获的错误类型.)这意味着我有几个测试失败了OTHER_FAULT,这似乎是 clang 的运行时报告错误的固定方式. 我已将这些测试的 WILL_FAIL 标志设置为 TRUE,但这似乎只是检查成功、无异常失败的返回值.如果进程因异常而终止, ..
发布时间:2022-01-14 18:09:07 其他开发

CMake 中的预期构建失败测试

有时最好检查某些东西是否无法构建,例如: //下一行应该编译失败:can't convert const iterator to iterator.my_new_container_type::iterator it = my_new_container_type::const_iterator(); 是否可以将这些类型的东西合并到 CMake/CTest 中?我在 CMakeLists.tx ..
发布时间:2022-01-14 17:45:42 C/C++开发

使用 clang 和 gfortran 编译

我正在尝试编译我最近开始工作的项目,并被要求在 clang 而不是 gcc 中编译代码.该项目有一个CMake文件,我尝试使用 cmake -DCMAKE_C_COMPILER=clang -DCMAKE_CXX_COMPILER=clang++ ../src 但是抛出了一个错误,我认为这是因为 clang 没有 Fortran 编译器,并且项目的一部分有 Fortran 代码.有没有办法让它 ..
发布时间:2022-01-14 10:16:19 C/C++开发

如何使用 CPack 构建 debian 包来执行 setup.py?

到目前为止,我的项目只有 .cpp 文件被编译成不同的二进制文件,我设法配置 CPack 来构建一个合适的 debian 包 没有任何问题. 最近我编写了几个 python 应用程序并将它们添加到项目中,以及一些我也想合并到包中的自定义模块. 编写 setup.py 脚本后,我想知道如何以 setup.pyCPack 配置中code> get 会在用户使用 dpkg -i packag ..
发布时间:2022-01-13 17:07:37 Python

设置诊断:来自 CMakeLists.txt 的插入符号

我想使用 Visual Studio 2017 中新的(更好的)诊断信息. 要同时为我的所有项目启用它,我想从我的 CMakeLists.txt 中声明这个标志 我试过了 set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS}/diagnostics:caret") 但是编译时会报错说/diagnostics:classic(这是默认值)与/diagnost ..
发布时间:2022-01-12 08:29:05 C/C++开发

如何为 Visual Studio 2017 RC CMake 项目设置工作目录

我使用 Visual Studio 2017 RC 打开一个 CMake 项目,然后我发现工作目录始终是输出目录. 有没有办法将工作目录设置到输出文件目录以外的地方? (因为没有.sln文件,不能用老方法设置工作目录) 更新我不是从 CMake 脚本调用程序.我在 Visual Studio 中运行目标程序.我想更改目标程序的工作目录. 解决方案 截至发稿 (2017-0 ..
发布时间:2022-01-12 08:14:11 其他开发

CMake:根据操作系统和架构链接预编译库

我有不同的第 3 方库(Windows/Linux/Mac,32/64 位)的预编译版本.它必须包含在项目文件中,以将其他系统上的编译要求保持在最低限度,因为我不能指望它在多年后可供下载.静态和动态版本都可用,但没有来源. 我应该如何在我的 CMakeLists.txt 中链接它,以便依赖的 main.cpp 在所有系统上编译?它可以在不同的 Linux 发行版上运行吗? CMAKE_MI ..
发布时间:2022-01-11 15:45:21 其他开发

强制 CMake 使用完整的库路径

我有以下问题.我的 Linux 机器上有一个单独的 {bin,lib,include} 树,其中安装了 CMake 和我开发工作所需的所有库.但只有 PATH 环境变量设置为此 bin 目录,并且由于多种原因我无法设置 LD_LIBRARY_PATH.此树中的所有程序都是使用 RPATH 构建的.我正在使用的 CMake 3.3.1 也在这棵树内. 现在的问题我想用libcurl编译一个程序 ..
发布时间:2022-01-11 15:37:17 服务器开发