草庐IT

CMAKE_C_COMPILER

全部标签

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文件。我创建了一个极简示例,其中包括两

c++ - 如何配置 CMake 以使用 -fPIC 构建库?

这个问题在这里已经有了答案:HowtolinkagainstPICversionofalibrary'sdependencyinCMake?(1个回答)关闭6年前。我正在尝试创建一个指定了-fPIC的静态库。add_library(cpp-netlib_picSTATIC${SRCS})set_property(TARGETcpp-netlib_picPROPERTYPOSITION_INDEPENDENT_CODE)这行不通。库(cpp-netlib_pic)是在没有-fPIC标志的情况下构建的。链接到cpp-netlib_pic的其他目标做但是,将-fPIC添加到他们的编译器标志中

c++ - CMake:如何指定 ctest 应在其中查找可执行文件的目录?

我想将ctest集成到一个c++/c项目中。我使用谷歌测试来编写单元测试。我的CMakeLists.txt的相关部分如下所示:...#######CREATINGEXE#######add_executable(test_exemain.cpptest.cpp)target_link_libraries(test_exeGTest::GTestGTest::Main)set_target_properties(test_exePROPERTIESRUNTIME_OUTPUT_DIRECTORY${UNIT_TEST_BIN_OUTPUT_DIR})add_test(test_exete

c++ - CMake 和 Visual Studio : How to get a quick, 安静的命令行构建?

我有一个cmake项目,它成功地完成了我想要的一切。但是我有大约100个文件,我厌倦了看到生成的巨大输出,每次我只需要重新编译一个文件时每个文件30行。明确地说,我正在编译cmake--build.以获得此结果。我需要传递给编译器(或MSBuild)以跳过检查未更改文件的打印的参数是什么?在VisualStudio中编译项目不会产生所有这些视觉垃圾。这是我为每个未更改的文件获得的输出:Project"C:\noscan\working\proj\build\ALL_BUILD.vcxproj"(1)isbuilding"C:\noscan\working\proj\build\os\s

c++ - MSVC : what compiler switches affect the size of structs?

我有两个单独编译的DLL,一个是从VisualStudio2008编译的,一个是从matlab编译的mex文件。两个DLL都包含一个头文件。当我在一个DLL中采用sizeof()结构时,它返回48,而在另一个DLL中它返回64。我检查了/Zp开关,在两个编译中它都设置为/Zp8。还有哪些其他编译器开关可能会影响结构的大小?该结构是一个简单的POCO,没有继承,也没有虚函数。编辑结构看起来像这样:classLIBSPECSGeometry{public:std::vectorm_i;uintN;uintn_im,n_s;};在调试中,sizeof()在两种情况下都返回56,在发行版中,在

opencvb 十七 使用cmake配置opencv c++项目

1、cmake简介1.1cmake是什么CMake是一个开源、跨平台的编译(Build)工具,是用来构建、测试和打包软件的。它能够用简单的语句来描述所有平台的编译过程。它能够输出各种各样的makefile或者project文件,能测试编译器所支持的C++特性,类似UNIX下的automake。CMake并不直接生成最终的软件,而是产生标准的建构文件(如Unix的Makefile或WindowsVisual,C++的projects/workspaces),这些文件可以被一般的编译工具所使用。1.2cmake能做什么CMake是一个跨平台的构建自动化工具,可以自动生成跨平台的Makefile、V