草庐IT

cmake-custom-command

全部标签

c++ - 使用 CMAKE 检查编译器中是否启用了 c++11 功能

我正在使用CMake开发一个项目。我的代码包含constexpr方法,这些方法在VisualStudio2015中允许,但在VisualStudio2013中不允许。如果指定的编译器支持该功能,我如何检查CMakeLists.txt?我在CMake文档中看到过CMAKE_CXX_KNOWN_FEATURES,但我不明白如何使用它。 最佳答案 您可以使用target_compile_features要求C++11(/14/17)特性:target_compile_features(targetPRIVATE|PUBLIC|INTERF

c++ - 使用 cmake 构建我的 C++ 项目的正确方法?

我已经为此苦苦挣扎了很长一段时间,而我使用cmake的冒险只导致了我非常确定不正确的骇人听闻的解决方案。我创建了一个由几个文件组成的库,如下:-libfolder-codepart1folder-CMakeLists.txt-codepart1.cpp-codepart1.hpp-codepart2folder-codepart3folder-lib.cpp-lib.hpp-CMakeLists.txt我写了一个CMakeLists文件来编译库(经过一些实验),我可以生成一个lib.a文件。现在我想将这段代码作为库包含在其他项目中,并通过lib.hpp中的接口(interface)访问

c++ - 自 Mojave 以来,链接在 Homebrew 软件的 cmake 中不起作用

我现在已经在两台计算机上重现了这个症状,cmake似乎不再在/usr/local/lib中查找(或者更准确地说,$(brew--prefix)/lib)用于Homebrew提供的库,因为我的机器升级到macOSMojave。尽管有一些方法可以避免这种情况(例如,使用EXECUTE_PROCESS搜索Homebrew程序前缀;将结果添加到LINK_LIBRARIES(...)命令),但没有一个是理想的。Mojave中发生了什么改变来打破这种行为?临时解决方法是将以下内容添加到CMakeLists.txt:#WARNING:Don'thard-codethispathLINK_DIRECT

镜像下载boot.iso和dvd1.iso的区别;dnf:找不到命令;yum和dnf的区别;CentOS Stream和Linux的区别;dnf: command not found

这里写目录标题一linux的各个系列二Enddatesarecomingin2024forCentOSStream8andCentOSLinux7三镜像下载boot.iso和dvd1.iso的区别四yum和dnf的区别1CentOSStream9软件仓库对比,虽然命令不一样,但是软件包是一样的,这是保留了老用户的习惯2CentOSStream9软件版本对比,也是一样的dnf:commandnotfound一linux的各个系列这里看一下Fedora家族(系列),描述来源网络从CentOSLinux到CentOSStream红帽创建于1993年,一直以来秉承开源开发模式和上游优先原则,与开源社区

c++ - CMake 在使用 android-cmake 工具链文件时找不到 Boost 库

我正在尝试为使用Boost库的代码创建一个CMake项目。我想为Android构建它,我正在使用这个项目作为引用:https://code.google.com/p/android-cmake/.我想使用我之前为android构建的Boost静态库,而不是将它们作为要编译的项目的一部分。这是我使用Boost的项目部分的CMakeLists.txt#BOOSTset(BOOST_ROOT/home/neb/workspace/SDLActivityCMAKE/jni/boost)set(Boost_INCLUDE_DIR/home/neb/workspace/SDLActivityCMA

c++ - CMake:使用静态库在一个项目中构建多个可执行文件

我正在从事一个项目,该项目包含3个服务器可执行文件和一个用于共享代码的库。我希望它是跨平台的,所以我使用CMake(因为Xcode无论如何都很痛苦)来处理构建过程。我在设置CMakeLists时遇到问题,以便在构建可执行文件时可以从同一级别的目录中包含库。这是目录结构(和CMake文件):tethealla2.0/CMakeLists.txtlibtethealla/CMakeLists.txtencryption/utils/patch_server/CMakeLists.txtlogin_server/CMakeLists.txtship_server/CMakeLists.txt

c++ - CMake 似乎忽略了 CMAKE_OSX_DEPLOYMENT_TARGET

我在OSX10.10.5上使用CMake3.3.2和Xcode7.1。我有一个使用CMake的小型C++项目。我希望它在OSX10.9或更高版本上运行。所以我修改了我的CMakeLists.txt来开始这个:cmake_minimum_required(VERSION3.3)set(CMAKE_OSX_DEPLOYMENT_TARGET"10.9")project(...然后我像这样创建Xcode项目:cmake-GXcode但是,生成的xcodeproj包似乎没有设置部署目标。当我在文本编辑器中打开包含的project.pbxproj文件时,没有提到MACOSX_DEPLOYMENT

c++ - 添加符号时出错 : DSO missing from command line

尝试在Qt项目中使用Ogre。Ogre构建成功。运行项目它给我三个错误:/usr/lib/x86_64-linux-gnu/libboost_system.so.1.54.0:-1:error:erroraddingsymbols:DSOmissingfromcommandline-1:error:main.o:undefinedreferencetosymbol'_ZN5boost6system15system_categoryEv'当我搜索错误时,它说要编辑makefile并添加:LIBS=-lp线程但它已经存在了。如何解决这个错误? 最佳答案

c++ - Boost.Program_Options : When <bool> is specified as a command-line option, 什么是有效的命令行参数?

鉴于Boost.Program_Options的以下简单使用:boost::program_options::options_descriptionoptions("Options");options.add_options()("my_bool_flag,b",boost::program_options::value(),"Samplebooleanswitch)");...哪些命令行参数将评估为false,哪些评估为true?(即假设程序名为“foo”,并在命令行上执行为:foo-b?...问号是其他一些文本的占位符:所有可能的文本选项将正确评估为false,什么是true?)

c++ - CMake:编译 OpenCV 时找不到 CUDA 库

我正在使用CMAKE在Windows上编译支持CUDA的OpenCV3.0.0。当我点击“配置”时,出现如下错误:CMakeError:Thefollowingvariablesareusedinthisproject,buttheyaresettoNOTFOUND.PleasesetthemormakesuretheyaresetandtestedcorrectlyintheCMakefiles:CUDA_cufft_LIBRARY(ADVANCED)linkedbytarget"opencv_hal"indirectoryE:/dev-lib/opencv3/sources/mod