草庐IT

language-cmake

全部标签

c++ - cmake:为静态库的调试构建添加 "d"后缀

我想为库实现一个类似于此处提到的命名方案:Librarynameforx32vsx64CMakeLists.txt文件设置为创建静态库add_library(testtest.htest.cpp)从cmake列表创建visualstudio解决方案后,项目的设置方式是将调试库test.lib写入/x64/Debug/test.lib并发布版本写入/x64/Release/test.lib。我宁愿将它们都写到/lib/但在调试版本后附加一个“d”。思路是得到/lib/test.lib/lib/testd.lib如果可能的话,为64位构建添加一个额外的后缀/lib/test.lib/lib

c++ - Cmake 中的可选目标

有没有办法在CMake中指定可选目标?我的意思是那些只有在明确指定它们时才构建的,例如make,并且在您仅指定make时不会构建?我知道我可以使用add_custom_command()来做到这一点,但我需要普通构建目标具有的所有功能 最佳答案 无需使用add_custom_target。当通过add_executable为可执行文件指定构建规则时,您可以简单地指定EXCLUDE_FROM_ALL。这同样适用于add_library。 关于c++-Cmake中的可选目标,我们在Stack

OpenCV+Cuda+Cmake+VStudio配置踩坑记录

OpenCV+Cuda+Cmake+VStudio配置记录前后配这玩意三次,一直挺头疼,最近项目原因不得不又配了一遍,遂下定决心写一下坑点前置安装CMake编译Opencv(VS2022)这步请提前确定好cuda和cudnn的版本对应,cuda版本和电脑环境的版本兼容,cuda和vs的版本对应(大坑,比如cuda11.3不支持vs2022!)查看系统支持的cuda版本:输入win+r,输入cmd,打开命令提示符窗口,输入:nvidia-smi注意这里显示的是系统支持的最高版本,不是当前版本!CUDA与VisualStudio版本之间的对应关系如下:cuda12.1及以上才支持VS2022cud

c++ - 将 freetype 与 cmake 链接起来

在使用externC库构建C++11项目时,我在使用cmake链接linux下的freetype2时遇到问题.使用cmake和freetype2我基本上有2个选择:像freetype-config--libs一样使用实用程序freetype-config使用FindFreetypecmakemodule现在我正在尝试实现第二个选项,但我对cmake不是很熟练,也不了解它的逻辑。我的问题是链接阶段,我不知道如何正确地做到这一点加上这个模块并不像freetype-config--libs的结果那样完整,它实际上包括所有的库和我需要的标志,而不仅仅是文件的路径;所以我假设我必须对zlib和l

c++ - 如何为 jsoncpp 编写 cmake 模块?

我想使用jsoncpp编写C++代码以解析JSON文件。让我解释一下我做了什么。我创建了一个CMakeLists.txt并制作了一个FindJsoncpp.cmake以及一个简单的c++文件来测试jsoncpp。当我使用-I/usr/include/jsoncpp/-ljsoncpp在没有cmake的情况下编译C++源代码时,它工作正常。但是当我尝试使用cmake构建它时,它找不到我包含在我的C++源代码中的json.h头文件。这是我的CMakeLists.txt:cmake_minimum_required(VERSION2.6)project(Parser)set(CMAKE_MO

c++ - 使cmake将命令行变量传递给编译器

我有以下代码:intmain(){#ifdefCOMMIT_VERSIONcout我想调用cmake,以便它将命令行上定义的COMMIT_VERSION变量传递给g++,从而传递给我的应用程序。例如。以下调用:cmake-WHAT_IS_THE_OPTION_NAMECOMMIT_VERSION='"HelloVersion"'make./a.out产生输出appversion:HelloVersion 最佳答案 您可以使用-D:=在cmake脚本中添加定义的选项(type和value是可选的),如下所示:cmake-DCOMMIT

c++ - CMake 为 FIND_PACKAGE 设置起始路径?

我正在使用通过Homebrew在我的Mac上安装的较新版本的openssl,想知道是否有办法为CMAKE的FIND_PACKAGE函数设置启动路径?现在,当我尝试使用FIND_PACKAGECMAKE时,发现我的操作系统使用的是旧版本的openssl。我目前在我的CMakeLists.txt中使用它SET(OPENSSL_LIB_DIR/usr/local/Cellar/openssl/1.0.2f/lib)INCLUDE_DIRECTORIES(/usr/local/Cellar/openssl/1.0.2f/include)TARGET_LINK_LIBRARIES(mangaMe

在linux中配置c++和cmake环境

Prefix:熟悉常见Linux开发命令,并熟悉Linux中的cmake等操作1.1目录结构常见目录结构:(1)bin:存放二进制文件,这些文件都可被运行(2)home:除root外其他用户的目录,类似于windows下的/User(3)root:用户自己的目录[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-XTj5Hk4w-1684044390875)(pics/Linux1.1.png)]1.2指令与选项指令格式:命令选项操作对象ls-l-a-h/home./三个选项两个操作对象ls-lah/home./一个选项两个操作对象以上两条命令等价1.3重要指令讲解在

c++ - 使用 CMake 在构建后运行 C++ 程序

我有一个用C++编写的应用程序,我使用CMake构建和发布二进制文件。我想让CMakeLists.txt脚本编译并运行一个CPP文件,该文件用于在为应用程序构建二进制文件后对许可证文件进行时间戳和加密。我见过运行execute_process命令的示例,如下所示:execute_process(COMMAND"gcc-ofoofoo.cpp"WORKING_DIRECTORY${CMAKE_CURRENT_SOURCE_DIR})execute_process(COMMAND"./foo"WORKING_DIRECTORY${CMAKE_CURRENT_SOURCE_DIR}RESUL

c++ - 构建 OpenCV 时出现 CMake 错误 - CMakeLists 不匹配

我尝试在我的RaspberryPi2B上构建OpenCV3.1.0。不幸的是,当我尝试时:cmake-DCMAKE_BUILD_TYPE=RELEASE\-DCMAKE_INSTALL_PREFIX=/usr/local\-DINSTALL_C_EXAMPLES=OFF\-DINSTALL_PYTHON_EXAMPLES=OFF/home/pi/Downloads/opencv-3.1.0它给了我一个错误:(:CMakeError:Thesource"/home/pi/Downloads/opencv-3.1.0/CMakeLists.txt"doesnotmatchthesource