草庐IT

cmake-custom-command

全部标签

c++ - cmake -g 标志不生成 'DWARF with dSym file' 调试信息

我正在使用cmake生成C++Xcode项目,但从未生成调试信息。每次使用cmake生成项目时,我都必须从build设置中手动选择“DWARFwithdSymfile”。使用“SET(CMAKE_CXX_FLAGS_DEBUG"${CMAKE_CXX_FLAGS_DEBUG}-g")”没有区别。我也很确定它曾经与XCode6一起正常工作(现在使用Xcode7) 最佳答案 解决方案您可以使用CMAKE_XCODE_ATTRIBUTE_*变量。要设置DWARF,您可以使用:set(CMAKE_XCODE_ATTRIBUTE_DEBUG_

c++ - 使用cmake时出现奇怪的错误

这个问题不太可能帮助任何future的访问者;它只与一个小的地理区域、一个特定的时间点或一个非常狭窄的情况有关,这些情况并不普遍适用于互联网的全局受众。为了帮助使这个问题更广泛地适用,visitthehelpcenter.关闭10年前。有谁知道“C编译器“cl”无法编译简单的测试程序。”是什么意思?我正在尝试编译Wt在MSVC9上使用CMake。操作系统为WindowsXP。这是完整的日志:CheckforworkingCcompiler:clCheckforworkingCcompiler:cl--brokenCMakeErroratI:/ProgramFiles/CMake2.8/

c++ - 具有自动生成源的 Cmake 可执行文件

我想从例如test_runner.cpp制作一个可执行文件:add_executable(myexe${CMAKE_CURRENT_BINARY_DIR}/test_runner.cpp)但是这个特定的cpp文件本身是在预构建命令中自动生成的:add_custom_command(TARGETmyexePRE_BUILDCOMMANDdeps/cxxtest-4.4/bin/cxxtestgen--error-printer-o"${CMAKE_CURRENT_BINARY_DIR}/test_runner.cpp"src/My_test_suite.hWORKING_DIRECTOR

c++ - 如何在 Visual Studio 中为 Cmake 项目添加 Linux 编译

VisualStudio在过去一年中为C++添加了许多新功能。CMake借助CMake支持,我可以执行“打开文件夹”并选择一个包含CMakeLists.txt文件的文件夹。VisualStudio在自动发现和构建它方面做了很多出色的工作。Linux编译VisualStudio现在支持通过SSH在Linux上进行远程编译。一些教程展示了用户如何在VisualStudio中创建新的“Linux控制台应用程序”,它会自动要求设置SSH连接以用于构建它。我没有看到任何关于如何在任何类型的现有项目上执行此操作的说明。特别是对于CMake项目,是否可以在VisualStudio2017中打开CMa

c++ - CMAKE_COMPILER_IS_GNUCXX 和 CMAKE_CXX_COMPILER_ID 为空

我目前正在玩弄CMake并想要检测编译器和编译器版本。我当前的CMakeLists.txt如下所示:cmake_minimum_required(VERSION2.6)set(PROJECT"a_tour_of_c++")set(GNUCXX_MINIMUM_VERSION"4.8")set(CXX_STANDARD"c++11")message("${CMAKE_CXX_COMPILER}")#C:/dev/MinGW/bin/g++.exemessage("${CMAKE_CXX_COMPILER_ID}")#EMPTYmessage("${CMAKE_COMPILER_IS_GN

c++ - 目标需要语言方言 "CXX17"(带有编译器扩展),但 CMake 不知道用于启用它的编译标志

所以我一直在尝试包含进入我的项目,这似乎是一个比我想象的更大的问题。应该是c++17的一部分,我需要将该定义添加到我的CMakeList中。我的根CmakeLists看起来像这样:MESSAGE(“InsrcCMAKELIST”)##Buildeverythingininclude/directoryadd_subdirectory(include)##set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY${CMAKE_BINARY_DIR}/lib)#set(CMAKE_LIBRARY_OUTPUT_DIRECTORY${CMAKE_BINARY_DIR}/lib)s

c++ - 在 CMake 中处理多个项目

我目前正致力于将一个VisualC++项目(其中包含多个子项目)过渡到CMake。有一件事我不确定——基本上,要从顶级CMakeLists.txt文件中包含子项目,我只是使用add_subdirectory命令,并引用这些不同的目录子项目存储在.但是,我有一个项目与我的顶级CMakeLists.txt文件位于相同目录中,所以我想知道是否仍然可以以某种方式包含该文件?CMake不允许我在现有的PROJECT_BINARY_DIR上调用add_subdirectory(见下文):add_subdirectory(${PROJECT_BINARY_DIR})#notallowedinCMak

c++ - 如何使用 CMake 有选择地链接静态或动态 boost 库?

我有一个CMake项目,有时我想针对静态boost库进行编译,但我也想让它更容易从cmakeGUI中使用动态库。在我的顶级CMakeLists.txt我有这个:option(USE_STATIC_BOOST"BuildwithstaticBOOSTlibrariesinsteadofdynamic"NO)然后在另一个文件中,我设置了以下逻辑:if(USE_STATIC_BOOST)unset(Boost_LIBRARIES)message(WARNING"Linkingagainstbooststaticlibraries")set(Boost_USE_STATIC_LIBSON)se

c++ - CMake 为 C 文件禁用 -std=c++11 标志

我正在尝试构建bkchaind.一种构建选项是使用cmake,因此我使用Homebrew(OSX10.9.1)安装了它。但是,当我执行cmake时,我得到:[2%]BuildingCobjectjson-rpc-cpp/src/jsonrpc/CMakeFiles/jsonrpcStatic.dir/connectors/mongoose.c.oerror:invalidargument'-std=c++11'notallowedwith'C/ObjC'我不太确定为什么cmake会尝试将特定于C++的编译器选项传递给C/ObjC文件。如果我在主CMakeLists.txt文件中注释掉这

c++ - 使用 CMake 抑制链接警告

我知道如何使用CMake来抑制编译警告(假设我想禁用编译警告C4819):set_target_properties(${PROJECT_NAME}PROPERTIESCOMPILE_FLAGS"/wd4819")那么如何使用CMake抑制链接警告(例如LNK4099)? 最佳答案 试试这个:set_target_properties(${PROJECT_NAME}PROPERTIESLINK_FLAGS"/ignore:4099")它非常适合我使用VisualStudio2015。 关