草庐IT

CMAKE_C_COMPILER

全部标签

c++ - 使用 cmake 添加 _CRT_SECURE_NO_WARNINGS 定义

是否可以使用cmake添加_CRT_SECURE_NO_WARNINGS预处理器定义?add_definitions(-CRT_SECURE_NO_WARNINGS)add_definitions(-_CRT_SECURE_NO_WARNINGS)add_definitions(_CRT_SECURE_NO_WARNINGS)这些是我到目前为止尝试过的。这些尝试都没有成功。 最佳答案 使用这个:if(MSVC)add_definitions(-D_CRT_SECURE_NO_WARNINGS)endif()参见here获取官方文档。

c++ - 如何将 CMake 与 Catch2 一起使用?

来自Catch2'sexample,我试着用cmake运行这个例子,我的项目结构是这样的:/factorial+--CMakeLists.txt+--/bin+--/include|+--catch.hpp|+--fact.hpp+--/src|+--CMakeLists.txt|+--fact.cpp+--/test+--CMakeLists.txt+--test_fact.cppfact.cpp:unsignedintfactorial(unsignedintnumber){returnnumberfact.hpp:#ifndefFACT_H#defineFACT_Hunsigne

c++ - CMake:如何指定目标平台?

如何为CMake指定目标平台?例如x86、x64、amd64。我试过设置TARGET_CPU=x64但不确定它是否有效。 最佳答案 调用cmake命令时,您可以定义一个生成器,例如VisualStudio142015Win64,它会生成目标平台x64cmake-G"VisualStudio142015Win64"-H%SOURCE_ROOT_DIR%-BC:\build\vs2015\x64\MyProject如果您想在Windows上使用VS2015构建x86-您可以这样做:cmake-G"VisualStudio142015"-

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