问题标签 [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.
cmake - cmake 使用通配符作为 find_library NAMES 选项
在 cmake 中找到我们使用的库find_library(MyLibrary_LIBRARY NAMES mylibrary mylibrary10 mylibrary11 HINTS /path/to/library)
。mylibrary.so
该命令mylibrary10.so
告诉cmakemylibrary11.so
在.lib
每个HINTS
. 如果找到上述任何文件,则文件的路径将写入MyLibrary_LIBRARY
变量。但是,由于我正在使用的库之一经常被更新——因此该库很快就会被重命名为mylibrary20.so
或mylibrary21.so
——我需要经常更新 cmake 脚本以反映更改。我想知道是否有一种方法可以在这里使用通配符,以便 cmake 会自动在mylibraryXX.so
这里找到,这XX
意味着两位数。
根据文档(https://cmake.org/cmake/help/latest/command/find_library.html),这似乎不受支持。如果是这种情况,是否还有其他解决方法?(创建从mylibraryXX.so
to的链接mylibrary.so
对我来说不太有效,因为我无法控制库。)
cmake - 我们如何从主 CMakeLists.txt 文件中引用外部 cmake 文件?
假设我有一些与 protobuf 相关的 cmake 代码作为驻留在CMakeLists.pro文件中的库,我需要将此库作为外部文件配置包含在内。怎么做 ?
c++ - 无法在 CMake 中设置 c++ 版本
我正在尝试使用 cmake 将 C++ 版本设置为 11,但尽管尝试了多种方法,但它似乎并没有做任何事情。我已将问题减少到 2 个文件:CMakeLists.txt
测试.cpp
我正在运行 CMake 版本3.17.20032601-MSVC_2
,来自 Visual Studio 代码中的 CMake 扩展。
c++ - GLOB_RECURSE 抓取错误的源文件
我的源项目目录是这样的,
我需要用源 a.cpp 和 b.cpp 制作一个可执行文件,
我希望这会将 a.cpp 和 b.cpp 作为唯一的源文件,但是当我打印时
它也拾取了 test.cpp,我不知道为什么会这样。我的理解是 ${CMAKE_CURRENT_SOURCE_DIR}/src/*/ *.cpp,在这个语句中由于通配符 * 它会遍历 src 文件夹的每个子目录,然后使用 *.cpp 它会在每个子目录中附加所有 cpp 文件这些子目录。
c++ - How to set cmake option with ninja without calling vcvarsall.bat to compile x86 and x64 each of parent and child project?
I want to build project with Ninja in Visual Studio 2019 environment. To do this, I have to call vcvarsall.bat. I want to build parent project with x64 while build subproject with x86. When I call vcvars64.bat, I cannot compile subproject with x86. So I am going to set compiler with x64 and x86 env each of parent project and subproject. How to set this option in CMakeLists.txt file?
c++ - Cmake Boost库链接错误LNK1104:无法打开文件'libboost_random-vc142-mt-x64-1_74.lib'
我正在尝试制作使用 cmake 编译 C++ 代码的 node.js 本机插件...
CMakeLists.txt 文件
我正在使用内部依赖于 boost 的 websocketpp 库
在编译时出现此错误:
libboost_random-vc142-mt-x64-1_74.lib 存在于 boost_1_71_0/stage/x64/lib 文件夹
中并且此路径也添加到环境变量中......
cmake - CMake:基于标志的 target_link_libraries
已经链接了 4 个库,如果 FLAG 为 ON,则希望链接一个新库。
我希望它像
反正有没有在 cmakelists.txt 中实现这个?
c++ - CMake:如何在我的项目中链接库?
我创建了一个视觉工作室 hello world 项目。现在我想添加一个库 pugixml。我能怎么做?
在 CMakeList 中:
我的 pugixml 库是:
我怎样才能包含这个库?
c++ - 在打开 cuda 后端的情况下配置 OpenCV cmake 构建时出现错误“CUDA 后端需要 cuDNN”
我的目标:
我的目标是配置 OpenCV 4.5.1-dev 的构建,支持 cuda、tesseract 和 QT,而不会出现任何 cmake 错误。
我遇到的问题:
当我按下 cmake gui 上的配置按钮时出现以下错误:
这是我收到的完整 cmake 日志消息:
我期望的是能够配置 cmake 构建而不会出现任何 cmake 错误。
帮助您重现问题的信息:
- 这是我安装的 nvcc 版本:
- 这是我的 cmake 构建配置: 我将 cmake gui 配置为使用 Visual Studio 2019 编译 opencv
- 我要构建的open cv版本 OpenCV 4.5.1-dev
- 我使用的cmake版本是3.19.1
- 以下是关于我安装的 Visual Studio 版本的信息:
- 我的 GPU 是带有 2gb vram 的 nvidia gtx 1050 手机
- 这是我的 cmake 更改:
尝试解决问题
错误:CUDA 后端需要 cuDNN。请解决依赖或禁用
尝试解决问题:
- 将 Cmake 选项指定为
CUDA_ARCH_BIN
cuda sdk (11.2) 的版本。我认为标志是关于 cuda dnn 版本的 - 为我的 gpu 计算功能(版本)指定了 cmake 选项
CUDA_ARCH_PTX
,因为我认为它是关于Compute capability (version)
. 根据这篇维基百科文章,我知道我的计算能力是什么 - 我尝试按照在此线程中找到的 AbdelAziz AbdelLatef 的说明进行操作: 如何在 C++ 中处理“DNN 模块未使用 CUDA 后端构建;切换到 CPU”警告?但是它并没有帮助,因为已经启用了 cmake 标志,并且我已经将 opencv contrib 添加到了我的 cmake 配置中
- 我尝试指定 CUDA_ARCH_BIN 标志来
6.1
喜欢这个 关于 opencv 问题的问题评论,就像我指出的那样。按照他所说的,说我仍然有错误。
dll - 为什么不设置 cmake 安装前缀
我正在编译一个项目。在项目期间我收到错误setlocal if %errorlevel% neq 0 goto :cmEnd
我研究了错误,似乎错误与读写权限有关。我了解到可以使用cmake_install_prefix
值或禁用 UAC 来修复它。我禁用了 UAC 并将program files (x86)
' 的所有者设为我的用户。问题没有得到解决。后来我尝试更改,CMAKE_INSTALL_PREFIX
但我可能无法为其设置值。初始化cmake后,cmakeCache.txt
显示路径还在程序文件中
我在项目名称之前使用此代码
我也试过这个
我仍然将路径作为程序文件获取,并且出现 setlocal 错误。可能是什么原因?如果我不使用它,我也会使用-DCMAKE_WINDOWS_EXPORT_ALL_SYMBOLS=TRUE
它,没有错误,但我需要这个。
如果我把CMAKE_INSTALL_PREFIX="C:/Users/USERNAME/Desktop/memoryModule/path/xm"
它从cli返回错误
请帮我编译它