问题标签 [cmakelists-options]

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 投票
0 回答
35 浏览

c++ - Assimp - Windows - CMakeList - 导入失败

我知道这个问题已经被问过(很多次)。

如何在 CMakeLists 中包含 Assimp? CMakeLists 包括 OpenGL、glew、glfw、glm 和 assimp

但我仍然无法让它工作(通常)。

问题:如何安装 Assimp 并与 cmakelist.txt 中的 find_package 一起使用

我尝试了什么

  • 使用 cmake GUI 进行构建,然后使用 Visual Studio 构建 sln 文件
  • 使用 vcpck 安装并添加 cmakelist.txt 的路径
  • add_library(assimp "lib/assimp/assimp.dll")

但是所有的方法都会给出错误,例如:找不到 assimp,或者缺少 Assimp:Importer

这似乎建立,但后来我得到像unresolved external symbol "public: __cdecl Assimp::Importer::Importer(void)" (??0Importer@Assimp@@QEAA@XZ) referenced in function "private: void __cdecl

所以有些东西我完全错过了,我显然不明白。

有什么简单的我做错了吗?谢谢!

0 投票
0 回答
15 浏览

clion - CLion 没有创建 CMakeList 文件

我尝试将此项目加载到我的 CLion(版本 2021.3)。通常当我打开一个项目时,CLion 会询问我是否要创建新的 CMakelist 文件,但这次它只是打开项目而不创建 CMakelist 文件。

如果没有 CMakelist 文件,CLion 无法找到函数/枚举/等的声明...

更新:我在运行 Linux 的不同系统上加载了项目。CLion 基于 Makefile 执行预配置,它在没有 CMakeList 文件的情况下工作。

尝试在 Windows 系统上打开项目时仍然遇到问题。

0 投票
0 回答
26 浏览

android - 如何将.so格式的第三方文件复制到apk内的lib文件夹中?

那里。如何将.so格式的第三方文件复制到apk内的lib文件夹中?我有。有一个第三方库需要一个依赖 .so 文件,但是如何将它推入 lib 目录?我的 build.gradle

我的 .so 文件位于:src/main/cpp/test/arm_v8a, src/main/cpp/test/arm_v8a. 文件:test1.so, test2.so, test3.so, test4.so 在 cmakelists.txt 我指出文件:test1.sotest2.so

但是test1.so并且test2.so依赖于我只看到的lib目录中的apktest3.so和内部,我该如何做到这一点,你也被击中了吗?谢谢test4.sotest1.sotest2.sotest3.sotest4.so

0 投票
1 回答
24 浏览

cmake - 使用 cmake 将列表中定义的变量添加到 add_compile_definitions()

我在一个 cmake 中定义了一个变量列表,它是从主 CMakeLists.txt 调用的:

我的 gen_sigs.cmake:

我想使用此列表将预处理器定义添加到编译器命令行,例如(在主 CMakeLists.txt 中):

我尝试使用以下内容,但它不起作用(在主 CMakeLists.txt 中):

我是 cmake 的新手,所以任何关于如何完成这项工作的建议都会有所帮助。此外 add_custom_target 在 add_compile_definitions() 之前定义,它仍然没有帮助。我的猜测是执行顺序存在一些问题,因为当我在 cmakelists.txt 中打印 ${SIG_LIST} 时它没有任何价值。有没有办法向 add_compile_definitions 添加依赖项,以便我的 add_custom_target 命令在 add_compiler_definitions() 之前强制执行?

0 投票
1 回答
32 浏览

c - 使用 CMake 配置 Stm32 项目

我最近将我的 stm32 项目切换到 CMake 以独立于 IDE。根存储库(应用程序)包含多个子模块(HAL、FreeRTOS 等),其 CMakeLists.txt 明确包含每个使用的文件:

该解决方案有效,但我知道这不是一种可持续的方法。所以我尝试在 lib-hal 和 lib-freertos 子模块中创建库,指定它们的来源和包含

然后使用

将子模块“导入”到应用程序项目中。但是在构建可执行文件时,gcc 无法访问位于根目录include中的文件stm32h7xx_hal_conf.hFreeRTOSConfig.h。我不想将配置标头放入子模块中,因为它们用于具有不同配置的多个项目中。是否可以在将库添加到父项目后以某种方式扩展已指定的库目录搜索范围?

项目文件结构:

提前感谢您的回复。

0 投票
0 回答
9 浏览

cmake - 更改构建文件输出 CmakeLists

如何更改 CmakeLists.txt 的构建文件输出?

目前构建文件仍然出现在源目录中,而我希望它们在源文件的子目录中。我尝试了以下,但构建文件仍然出现在源目录中。

0 投票
0 回答
26 浏览

cmake - 如何在终端中隐藏cmake编译器定义-D

我使用 add_compile_definitions(var=value......) 将数百个编译器定义添加到我的根 CMakeLists.txt 中,这些定义在构建期间使用 -Dvar=value 在命令行/终端中打印出来。我想关闭回声以隐藏终端窗口中的打印件。到目前为止,我已经尝试使用

但没有任何帮助,尽管 cmakecache.txt 中的 CMAKE_VERBOSE_MAKEFILE 设置为 False,CMAKE_VERBOSE_MAKEFILE-ADVANCED:INTERNAL 以某种方式设置为 1,也在缓存中将此 var 更改为“0”以进行调试没有帮助......有人有吗更好的建议?

0 投票
0 回答
42 浏览

c++ - 如何将我的应用程序 Qt cMake 连接到 Mysql 数据库

我正在使用 qmake 在 Qt 小部件项目下工作,这里一切都会发生。现在我想切换到cMake,我不知道如何在互联网上长时间搜索后将我的应用程序连接到cMake下的Mysql我仍然没有找到解决我的问题的方法她我的方法我将此行添加到我的cMakeLists。文本

“find_package(Qt6 COMPONENTS Sql REQUIRED)target_link_libraries(mytarget PRIVATE Qt6::Sql)”

将此行添加到我的头文件

#include QSqlDatabase

我创建了一个像这样的简单 teste 函数

但我仍然收到很多错误,比如找不到这个 QSqlDatabase 文件我是有人可以帮助我提前谢谢你

0 投票
0 回答
38 浏览

c++ - 使用 CMAKE 包含来自共享库的头文件

我有这样的文件结构

我打算将lib_a.hand打包lib_a.cpp到一个lib_a.so,然后在main.h

这种结构可能与我的真实文件不同,但主要目的是相同的:包含来自solibrary的 header ,而不是来自目录。在这种情况下,我们有解决方案CMakeLists.txt吗?

以下 CMake 仍然lib_a.h从其目录中搜索

更新

为什么我不用target_include_directories(mainex include lib_a/include )?这实际上是我的抱怨。的内容lib_a/include只能由 NVCC (compiler for Cuda) 编译,不能由 GCC 编译。所以我打算先创建 nvcc-compiled liba.so,然后将这个库中的内容包含在main.cpp. target_include_directories(mainex include lib_a/include )得到一个错误,因为 gcc 无法处理lib_a/include

0 投票
1 回答
28 浏览

c++ - CMAKE_CXX_FLAGS_RELEASE(cmake 发布标志)值有什么区别?

我正在使用 CMake。我看过很多 CMake 文件,发现设置了不同的发布标志值。

在一个文件中我发现: set(CMAKE_CXX_FLAGS_RELEASE "-O3")

在另一个: set(CMAKE_CXX_FLAGS_RELEASE "-O2")

在其他我发现: set(CMAKE_CXX_FLAGS_RELEASE "-O1")

请让我知道这些标志值之间的确切区别是什么?我可以使用任何一个吗?