草庐IT

CMAKE_INSTALL_PREFIX

全部标签

c++ - CMake:如何在安装了 VS2017 的情况下指定 VS2015.3 工具集

我安装了VS2017,同时安装了VS2017(v141)和VS2015.3(v140)工具集。我需要使用CMake生成一个解决方案,我希望CMake被“愚弄”,就像安装了VS2015一样,这样我就可以使用v140工具集构建项目。我知道这个问题可能与以下问题重复:Howcmakespecify"PlatformToolset"foraVisualStudio2015project?但它提供的解决方案对我没有帮助。错误信息是:SelectingWindowsSDKversion10.0.14393.0totargetWindows10.0.15063.TheCcompileridentif

c++ - 如何让 CMake 在构建之前运行 python 脚本,以便为我的项目生成要在构建中使用的文件?

我有一个python脚本,它解析项目目录中的所有C++源文件,在文件中查找一些内容,然后生成一个文件。这个python脚本工作正常,但我希望它在构建我的C++项目之前自动运行。所以基本上,我希望这个python脚本在每次构建之前运行,所以如果任何.h或.cpp文件已被更改。如果python脚本本身已被更改,我也希望它运行。我有问题中的python脚本,genenums.py,与我的C++源文件(例如main.cpp等)位于同一目录中。我已经尝试根据文档尝试使用add_custom_command,但我无法让cmake在任何情况下运行此python脚本。我不确定如何使这项工作正常进行,因

c++ - 在 MS Visual Studio 2017 中将 boost::thread 与 CMake 一起使用会导致两个编译器错误

我想在我的项目中使用boost::thread并且我使用CMake作为构建工具。然而,即使是非常简单的设置也会导致两个编译器错误:main.cpp#includeintmain(){boost::threadt;return0;}CMakeLists.txtcmake_minimum_required(VERSION2.6)project(ThreadTest)set(Boost_USE_STATIC_LIBSOFF)set(Boost_USE_MULTITHREADEDON)set(Boost_USE_STATIC_RUNTIMEOFF)find_package(Boost1.58.

c++ - CppUnit 和 CMake : . cpp 文件被编译两次

我目前正在使用CMake构建我的项目,并使用CppUnit对其进行测试。在我的CMake文件中,我创建了两个可执行文件。sample是编译后的源代码本身。使用sample_test我运行测试。如果我是这是我的CMakeLists.txt的一部分SET(SAMPLE_ROOT_PATH${PROJECT_BINARY_DIR})SET(SAMPLE_SOURCE_PATH${SAMPLE_ROOT_PATH}/src)SET(SAMPLE_TEST_SOURCE_PATH${SAMPLE_ROOT_PATH}/test)SET(SAMPLE_BIN_PATH${SAMPLE_ROOT_P

c++ - cmake -D <变量> :<type>=<value> what does the parameter "-D" mean

我正在尝试使用cmake安装opencv。在opencv说明页面中,我找到以下示例:cd~/opencvmkdirreleasecdreleasecmake-DCMAKE_BUILD_TYPE=RELEASE-DCMAKE_INSTALL_PREFIX=/usr/local..据我了解,我应该在我创建的新目录中使用cmake生成Makefile,在这个例子中应该是~/opencv/release。但我不太明白最后一行。在cmake帮助中,我发现:cmake-D:==createacmakecacheentry这是什么意思?特别是这部分:":=",我不明白为什么这个例子给出了"CMAKE

c++ - CMake 删除包含目录

一旦在CMake中找到include目录,有什么方法可以删除吗?我发现了类似的问题here.但答案对我来说意义不大。我需要与上述消息的作者几乎完全相同的信息。我有一个全局CMakeLists.txt文件,它可以找到所有必要的包含路径。但是在一个特定子模块的CMakeLists.txt文件中,我想“隐藏”或“删除”系统包含路径并提供替代包含路径。是的,一个解决方案可能只是简单地更改提到的子模块中的包含,但是这个子模块是来自其他存储库的外部库,所以我不想更改它的代码。 最佳答案 如果您有能力使用较新的CMake版本(2.8.11或更高版

c++ - 依赖于另一个库的库上的 CMake 和 target_link_libraries

我正在使用CMake构建不同的C++库,整个事情可以总结如下:liba:不依赖于任何东西libb:依赖于a我现在需要创建一个依赖于b的库c。我只需要在b上链接c吗?或者在b和a上,因为b依赖于a?target_link_libraries(cb)还是target_link_libraries(cba)?谢谢 最佳答案 在你的代码构建库b中,你应该告诉CMakeb依赖于a:target_link_libraries(ba)然后,您的库/应用程序c可以仅链接到它使用的内容,而不必担心依赖项的依赖关系:target_link_librar

c++ - 从另一个 CMakeLists.txt 将变量读入 cmake

使用Ubuntu、C++和cmake,我想创建一个基于代码的程序Alpha对于另一个程序,Beta。我已经有了Beta的源代码,我需要为使用现有代码的Alpha编写代码。我试图保持一切整洁,所以我有一个单独的目录用于Alpha和Beta源文件,Alpha.cpp和Beta.cpp.这是我的目录结构:/CMakeLists.txt/Alpha.cpp(themainfunction)/Beta/CMakeLists.txt/Beta.cppAlpha的CMakeLists.txt文件如下所示:cmake_minimum_required(VERSION2.8)project(Alpha)

c++ - 在 OSX 上使用 CMake 构建 Unity native 包

我有一个Xcode项目,它构建了一个包含库的包。我使用以下菜单创建了项目:NewProject->Framework&Library->Bundle为了提供更多背景信息,我想创建一个nativepluginforUnity.目前header非常简单,仅包含一个header和一个源文件。我现在希望能够使用CMake生成一个类似的项目,但我正在努力让它发挥作用。我的CMake文件归结为:cmake_minimum_required(VERSION3.3)project(Plugin)set(CMAKE_CXX_FLAGS"${CMAKE_CXX_FLAGS}-std=c++11")set(

c++ - Emscripten 的 CMake 项目

我想让CMake和Emscripten成为friend。在Emscripten项目网站上没有找到更多或更少的信息文档,但他们提供了CMake工具链文件,所以我认为它应该是可能的。到目前为止,没有高级参数的非常基本的编译工作正常,但我在使用embind和预加载文件时遇到问题。链接过程似乎错过了Emscripten“二进制文件”,并为所有与嵌入相关的函数产生警告,如下所示:warning:unresolvedsymbol:_embind_register_class这导致在rowser中加载已编译的JS文件时出现相应的错误。编译过程中没有生成.data文件。我创建了一个极简示例,其中包括两