草庐IT

language-cmake

全部标签

c++ - CMake 嵌套项目和目标

我在从CMake源代码树构建特定的VisualStudio项目时遇到问题。想象一下我们在不同的子目录中有多个目标。在一个子目录中,我们启动一个新项目(和解决方案)。此项目目标中的项目应该是ALL_BUILD的一部分,但不在父ALL_BUILD中。简而言之:project(Main)add_executable(MainApplication...)target_link_libraries(MainApplicationPRIVATELibrary_A)add_subdirectory(Library_A)add_library(Library_ASTATIC...)add_subdi

c++ - 正确使用 CMAKE_*_OUTPUT_DIRECTORY

前言:我只谈论本地编译,不是安装项目。这是因为我还没有对适当的install做足够的研究。使用CMake,如果我的问题直接与install相关,请插话实践(似乎有可能)。长话短说在什么情况下您不希望将所有正在构建的项目库收集到同一目录中?为什么从来没有人CACHECMAKE_*_OUTPUT_DIRECTORY路径?是否需要执行$直接级别规范?一般默认值应该是CMAKE_BINARY_DIR,CMAKE_CURRENT_BINARY_DIR,或PROJECT_BINARY_DIR?1。缓存还是不缓存?来自thisexcellentanswerset(CMAKE_ARCHIVE_OUTP

c++ - CMake 无法找到对应于 "Unix Makefiles"的构建程序

这个问题在这里已经有了答案:CMAKE_MAKE_PROGRAMnotfound(16个答案)关闭4年前。全新的编码。我已经安装了CLion,并计划开始使用C++进行编码。我还安装了Cygwin。我已经研究了大约一个小时的编译器如何工作以及如何使用它,但是当我在Clion上选择编译器时,我得到了错误“CMake错误:CMake无法找到对应于“UnixMakefiles”的构建程序。未设置CMAKE_MAKE_PROGRAM。您可能需要选择其他构建工具。”“CMake错误:CMAKE_C_COMPILER未设置,在EnableLanguage之后”和“CMake错误:未设置CMAKE_C

python - Cmake 找不到 boost_python

我正在尝试从thislink构建这个简单的boostpython演示在我的MacOSHighSierra上。以下是hello_ext.cpp:#includecharconst*greet(){return"hello,world";}BOOST_PYTHON_MODULE(hello_ext){usingnamespaceboost::python;def("greet",greet);}以下是CmakeLists.txt:cmake_minimum_required(VERSION3.5)#FindpythonandBoost-botharerequireddependencies

c++ - 使用 CMake 构建项目,包括使用不同构建系统的其他库

我正在开发一个开源项目,该项目使用C作为库,使用C++作为GUI,使用Cmake来管理构建。这个项目刚刚开始,只有几个文件。我可以在我的linux开发环境和Windows上成功生成makefiles,我可以使用CMake生成VisualStudio项目文件。到目前为止一切正常。随着项目的发展,我正处于需要测试框架的阶段。我对UnitTest++有很好的经验,它将在所有流行的平台上运行良好。问题是,我不知道如何将UnitTest++构建与CMake集成(它们在linux上使用makefile,而visualstudio项目文件可用于windows)。在构建代码之前,我需要构建UnitTe

ubuntu环境通过CMake安装OpenCV

1:检查CMake是否安装成功wcx@wcx:~$cmake-versioncmakeversion3.16.32:检查pkg-config是否安装成功wcx@wcx:~$pkg-config--version0.29.13:下载OpenCV版本官网:https://github.com/opencv从第3版开始,OpenCV已经分成了两个主要部分。第一部分是包含了成熟算法的OpenCV主源码库,https://github.com/opencv/opencv,OpenCV的核心函数,也就是之前下载的内容。第二部分是独立的代码库contrib,https://github.com/opencv

c++ - cmake 是否使用约定优于配置?

Mavenissaidto使用ConventionoverConfiguration的形式.我不想做任何错误的比较,但据我所知cmake可以为C++项目填写类似于maven为Java项目填写的名单。那么,cmake是否有一些关于配置的约定,或者每个项目的配置都是唯一的?(Wrt.文件布局、测试布局、构建输出等) 最佳答案 在体验了Maven3的优雅之后,我也找了一个conventionoverconfigurationCmaven风格的系统。...我还检查了CMAKE,在创建骨架后,有几件事很突出。CMAKE有时是声明性的,有时是程

c++ - CMake 选项禁用特定平台特定文件的编译

我正在使用CMake来定义我的项目。我的目标是让特定于平台的文件易于访问,以便在所有平台上进行编辑、搜索、浏览和源代码控制。我目前在cmake描述中分隔了特定于平台的文件。我的CMakeLists.txt文件如下所示:Foo.hpp${platform_directory}/Foo.cpp然后在磁盘上我有这样的东西:Foo.hppwin`-Foo.cpposx`-Foo.cpp生成的项目文件如下所示:Foo.hppFoo.cpp(platform-specificversion)这对于编译器来说是完美的,但这意味着开发人员缺少用于非本地平台特定文件的IDE工具。我正在寻找的是这样的东西

c++ - 自定义目标的 cmake 依赖项

我使用python脚本(gen_instantiations.py)生成一个包含在另一个cpp文件(foo.cpp)中的cpp文件(autogen_instantiations.cpp)所以我希望CMake在foo.hpp或gen_instantiations.py发生变化时重新生成这个文件。按照CMakeFAQ中的说明,这是我所做的add_custom_command(COMMAND"./gen_instantiations.py"OUTPUT"autogen_instantiations.cpp"WORKING_DIRECTORY"${CMAKE_CURRENT_SOURCE_DI

c++ - 使用 g++ 和 CMake 损坏的配置文件信息

我正在尝试使用分析优化一个相当复杂的C++项目(多个源文件,链接到Boost库、GSL和OpenCV)。使用CMake,我首先编译set(CMAKE_CXX_FLAGS"-O3-ffast-math-fprofile-generate=profiling-pg-fopenmp")在使用典型输入运行生成的可执行文件后,我编译set(CMAKE_CXX_FLAGS"-O3-ffast-math-fprofile-use=profiling-fopenmp")编译失败,出现大量类似这样的错误:/n/user/projects/project_name/src/foo.cpp:Inmember