在多部分cmake项目中获得源代码外构建的正确方法

我使用cmake构建、测试和安装我的项目。 我的方法有点粗糙:我使用这样的脚本来获得一个源代码外构建: DIR=debug_build && rm -fr ./${DIR} && mkdir -p ${DIR} && cd ${DIR} && cmake -D CMAKE_BUILD_TYPE=Debug $@ .. && make 我想我至少可以把它放到makefile中,但是使用makefile运行cmake

Cmake 添加以文件名为目标的自定义命令

我想对输出文件执行类似于添加自定义命令的操作 在生成的makefile中命名为目标。有一种优雅的方式吗 这样做 我看到的所有示例(例如)都使用add_custom_命令来说明如何生成所需的输出文件,然后使用add_custom_target来创建目标。例如: add_executable (hello hello.c) add_custom_command(OUTPUT hello.bin COMMAND objcopy --output-format=bi

使用cmake为gdb创建符号表

有没有办法使用cmake for gdb只创建符号表?为gdb生成调试信息的常用方法是将-g传递给gcc或g++编译器(以及在链接时) 查看以了解如何获取可调试的可执行文件。将此行添加到文件CMakeLists.txt: set(CMAKE_BUILD_TYPE Debug) 在优化但添加调试符号的发布模式下编译,这对分析非常有用: cmake -DCMAKE_BUILD_TYPE=RelWithDebInfo ... 或编译时不进行优化并添加调试符号: cmake -DCMAKE_BUIL

作为cmake构建的一部分运行python脚本

我是第一次使用cmake,只是没有运气找到一些例子来帮助我找出我做错了什么。该功能似乎非常基本,但迄今为止,我所尝试的任何东西都没有给我任何有意义的输出或错误 我有一个文档的预加载命令,只要已经创建了文档,这个命令就可以正常工作 set(variable_name PRELOAD ${_source_directory}/Documents/output.txt AS output.txt ) 但我希望文档生成(通过python脚本完成)也成为cmake构建过程的一部分。我要运行

cmake和jsonCPP静态库目标出错“;jsoncpp_lib_static“;

当我尝试在jsonCPP上使用cmake时,我得到了以下错误 CMake Error at lib_json/CMakeLists.txt:73 (INSTALL): install TARGETS given no ARCHIVE DESTINATION for static library target "jsoncpp_lib_static" 我使用自述文件中的命令: cmake -DCMAKE_BUILD_TYPE=debug -DJSONCPP_LIB_BUILD_STATIC=O

CMake政策的范围是什么?

我有一个CMake项目,它有几个子目录,如下所示: dir1 subdir11 subdir12 dir2 subdir21 subdir22 根目录CMakeLists.txt: add_subdirectory(dir1) add_subdirectory(dir2) dir1和dir2中的CmakeList相似: add_subdirectory(subdir11) add_subdirectory(subdir12) 及 细分市场中的CMakeLis

CMake can';找不到FindGLEW.cmake

Ubuntu12.04 Cocos2d-x-3.4 当我构建测试项目时,出现了一些错误: It appears you are builing natively for Linux with GCC -- OpenGL include dirs: /usr/include **CMake Error at cmake/Modules/CocosBuildHelpers.cmake:44** (find_package): **Could not find module FindGLEW.cm

cmake:添加作为字符串处理的数据类型的定义

标准C 我需要向项目中添加数据类型,因为GNU不理解某些C51数据类型。示例需要一个字节类型,如下所示: #define BYTE unsigned char 我试过以下例子: add_definitions(-DBYTE=\"unsigned char\") add_definitions(-DBYTE="unsigned short") add_definitions(-DBYTE="\"unsigned long\"") 还有别的想法吗 谢谢:-)这应该可以: add_definiti

CMake无法在其他目录中找到源文件

我试图将一个目录(/source)中的文件包含到另一个目录(/test)中的测试用例中,但cmake在/source中找不到任何文件 我的项目结构: PrettyDD/ + CMakeLists.txt + external/ + CMakeLists.txt + gmock-1.7.0/ + source/ + CMakeLists.txt + parser.cpp + parser.h

CMakeLists.txt:如果ctest失败,如何打印消息?

如果ctest测试失败,是否有办法设置CMakeLists.txt以打印消息?例如: cmake .. make ctest // fails message output: Please contact xyz@mail.com to resolve testing problems. 您可以使用,它可以帮助您将信息输出到配置日志进程。您可以使用,它可以帮助您将信息输出到配置日志进程。它不会在ctest中输出消息或使测试正确吗?哦,您的意思是作为目标?如果是这样的话…那你就需要和迪珀一起去。

生成过程中的cmake生成错误

我在cmake的构建过程中遇到了这个错误,它告诉我 CMake Error at CMakeLists.txt:223: Parse error. Function missing ending ")". End of file reached. 这是我的密码: if( make_release_only) endif() # I don't plan on debugging this, so make it a release build. if( NOT CMAKE

Cmake-freetype、sdl、sdl图像

我有以下cmake文件: cmake_minimum_required(VERSION 2.8) include(ExternalProject) project(freetype_test) set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11 -Wall") set(LIBS_DIR ${PROJECT_SOURCE_DIR}/libs) set(FREETYPE_VER "2.5.3") set(SDL2_VER "2.0.3") #

如何设置cmake的包含订单

我正在使用cmake为一个项目生成Makefile。在顶部的CMakeLists.txt中,我需要包含一些子模块。所以它就像: include(cmake/Modules/pcre-8.40.cmake) include(cmake/Modules/curl-7.64.1.cmake) include(cmake/Modules/openssl-1.1.1.cmake) curl-7.64.1.cmake类似于: include(ExternalProject) set (PCAP_ROO

Cmake 找不到-l<;图书馆名称>;,即使在设置LD_LIBRARY_路径之后

我正在尝试构建,但无法解决某些依赖项错误。我在anaconda环境中,使用的是conda安装的g++版本和一些libs(我没有根特权) 但是libjpeg,libpng等都是/home/user/anaconda3/envs/sfm/lib/。例如: (sfm) [openMVG]$ find /home/user/anaconda3/envs/sfm/ -name 'libjpeg*' /home/user/anaconda3/envs/sfm/conda-meta/libjpeg-turbo

CMake无法找到X11包

我正在尝试运行verilog模拟器“verilog到路由(vtr)”。在构建vtr时,我无法启用图形 出现一条警告消息:“EasyGL:未能找到所需的X11库(在debian/ubuntu上尝试sudo apt get install libx11 devto install)”。安装libx11 dev并不能解决问题 在文件“vtr-verilog-to-routing-8.0.0/libs/libeasygl/CMakeLists.txt”中,有以下与此相关的行: #Look for X11

CMake和VCPKG。未使用三元组标志

我想使用CMake构建我自己的库可执行文件。我已经安装了动态和静态x64版本的第三方库,如boost。当我用cmake编译自己的项目时,我无法让它使用静态版本。以下是我的设置: cmake 3.18.1 vcpkg从主分支机构撤出(2020年8月11日) Visual Studio 2019 16.6.1.0 在具有Windows Server Core 2019的docker容器中运行 当我只做cmake..和cmake--build.时,它会像预期的那样默认为x64窗口。我有一个仅作为静

如何在CMake中知道我们正在生成一个包?

我希望在用户调用时忽略CMakeLists.txt文件的一部分 make package 因此,我正在寻找一个变量,如CMAKE_命令或CMAKE_打包,以便 if (CMAKE_COMMAND EQUAL 'package') ... 或 这是否存在?它可以实现吗?CMake生成的make文件包含一些“预定义”的make目标,这些目标遵循使用它们的人所期望的约定。目标,如全部、安装、打包和测试 默认情况下,“安装”和“包”生成目标通常取决于“全部”生成目标。(因此,如果键入“make in

cmake:将软件链接到boost::mpi(使用mpich2)

对于此简单代码(取自boost mpi文档): 它找不到boost\u mpi: CMake Error at /usr/share/cmake/Modules/FindBoost.cmake:1135 (message): Unable to find the requested Boost libraries. Boost version: 1.47.0 Boost include path: /usr/include The following Boost librarie

Cmake Flex/Bison目标不存在

我的项目中有一个子目录结构,其中包含两个cmake文件。其中一个应该是使用flex和bison的编译器,但cmake给了我一个我不太理解的错误: cmake_minimum_required(VERSION 2.8) project(leaf) add_subdirectory(leafc) 在目录leafc中: find_package(BISON) find_package(FLEX) BISON_TARGET(LeafParser ${CMAKE_CURRENT_SOURCE_DI

自动将目录用作CMake中的项目名称

我在使用CMake管理构建系统方面是相当新的,所以如果我很愚蠢,这是一个坏主意,请让我知道 我希望能够设置我的cmakelists.txt文件,以便 project( ... ) 目录的名称将自动成为项目名称。我之所以想这样做,是因为我发现能够将一个项目的整个目录复制为另一个项目的起点非常方便。然而,尽管我总是将目录重命名为有意义的名称,但我经常忘记更改cmakelists.txt文件的项目(名称)行,然后我在构建环境中以相同的名称打开多个项目,这让人感到困惑 理想情况下,如果目录名中有空格,

CMake,在32位机器上构建64位

我正在使用make构建我的项目。我将glfw作为依赖项,它使用cmake生成Makefile。这就是我如何从Makefile调用cmake: glfw: $(MKDIR) $(CBUILD_PATH)$(PATH_SEP)glfw ifeq ($(OS),"MinGW") cd $(CBUILD_PATH)$(PATH_SEP)glfw && \ cmake -G "MSYS Makefiles" -DBUILD_SHARED_LIBS=ON -DGLFW

llvm&x27;s-cmake积分

我目前正在用C/C++构建一个编译器/解释器。 当我注意到LLVM时,我认为它非常适合我所需要的,所以我尝试将LLVM集成到我现有的构建系统中(我使用CMake) 我读过关于在CMake中集成LLVM的文章。我复制并粘贴了示例CMakeLists.txt,将LLVM_根更改为~/.LLVM/(这是我下载并构建LLVM和clang的地方),它说它不是有效的LLVM安装。通过将LLVM_ROOT更改为~/.LLVM/LLVM,我可以获得的最佳结果是错误消息“找不到LLVMConfig” 我的~/.l

CMake:如何添加自定义通用编译规则?

我需要将协议缓冲区.proto文件编译为.pb.cc、.pb.h文件。有一个用于此转换的程序 protoc test.proto --cpp_out . 如何在cmake中添加这样的通用规则?我可以用add_custom_命令来完成这项工作。但我必须为每一个.proto文件做这个。有更好的方法吗?看起来CMake的模块通过函数PROTOBUF\u GENERATE\u CPP提供了此功能 您可以在一次调用中传递多个.proto文件,例如 文件(GLOB协议文件“${CMAKE\u CURREN

复杂项目:cmake fdoes无法在远处的子目录中找到静态库

我正在做一个特别复杂的项目 在其中,我有一个库libcdlib.a,位于“映像”中的一个子目录中,它将被移动到另一个设备。在那个位置,我只有.a文件。附近的目录中有一个附带的.h。相对于svn“主干” trunk/base/sys/host/pkgs/access/lib/libcdlib.a trunk/base/sys/host/pkgs/access/include/cdk/cdlib.h 源代码存在于tarball中,如果lib是最近构建的,则可以使用 trunk/sys/cdk/cdk

CMake多行注释-块注释

有没有办法在记事本编辑器中对CMake中的块进行注释 我试过在谷歌上搜索,但找不到太多 需要帮助!谢谢,在CMake语法中没有块注释的概念。但是,要同时注释几行,请选择所需的行并按CTRL+Q 如果文件是.txt文件(例如,CMakeLists.txt),您可以将Notepad++设置为始终将.txt文件视为CMake文件(在“设置->样式配置器”中选择CMakeFile并将“txt”添加到“用户外部”)或者,对于该文件,您可以将语言设置为CMake。从CMake 3.0开始,块注释有一种特殊的

安装除CMake中的文件夹以外的目录中的所有文件

我想将名为scfg的文件夹下的所有文件(包含.cfg、.xml文件)和文件夹安装到另一个包含scfg的位置。下面的代码安装正确 file(GLOB config_files "scfg/*.cfg") install(FILES ${config_files} DESTINATION scfg) file(GLOB xml_files "scfg/*.xml") install(FILES ${xml_files} DESTINATION scfg) 但是,将来可能会有更多类型不同于.cfg和

无法理解此特定的CmakeLists.txt

我正在尝试编译我的第一个VST插件。我做了一个测试,试图把它分解并理解它,自己重写它,然后编译它 我目前正在分解CmakeLists.txt文件。我遇到了一个我不明白的问题 TARGET_LINK_LIBRARIES(gijzelijzer ${VSTSDK_LIBRARIES} ) 我不知道VST_LIBRARIES变量是什么。它不会在CmakeList.txt中的任何其他位置声明。这是一个坏掉的cmake文件,还是这里的语法有什么我不明白的地方。我只是不明白这里发生了什么 PROJ

将CLion上的GLFW链接到CMake

有人知道如何将glfw链接到CLion项目吗?CLion基于CMake,因此如果您对CMake有了解,您可以提供帮助 我想做的是,将依赖项放入我的项目文件夹中,这样当我将代码推送到git时,下载代码的其他人就不必在本地进行任何链接,环境将为他们设置 我试图将glfw的根文件夹移动到项目文件夹,但从那时起,我未能成功地调整我的CMakelist.txt文件,使其能够正确链接库。我无法让它工作。我试着在glfw网站上学习教程,但假设你知道如何使用CMake,并添加了子目录和所有内容,这就是我失败的地

链接CMake中的共享库(它依赖于其他共享库)

我试图构建一个链接到共享库(名为“caffe”)的可执行文件。共享库依赖于另一个共享库(名为“cblas”)。当我尝试在CMake文件中链接到caffe时,会显示以下错误: 找不到libcaffe.so所需的libcblas.so.3(请尝试使用-rpath或 -rpath链接) 我在CMakeLists.txt中使用以下语句: link_directories(${BINARIES}/lib) add_library(CAFFE_LIBRARY SHARED IMPORTED) set_tar

摆脱CMake警告';项目未使用手动指定的变量';

在CMakeLists.txt中触摸变量的首选方式是什么 我有一堆类似的外部项目,它们在循环中使用相同的变量调用。有些项目不需要特定的变量。您可以通过将--no warn unused cli传递给CMake,将此警告全部禁用。见: 根据CMake作者之一的说法,明确不希望接触变量: 然而,对于通过-DFOO=bar-DBAR=3-DBAZ=true传递的变量,可以添加一行 set(ignoreMe "${FOO}${BAZ}${BAR}") 您的CMakeLists.txt应该足以抑制警

告诉CMake使用C++;来自CMake的C文件的编译器?

这与类似,但不完全相同。它不一样,因为它的CMake文件导致了故障;我几乎在所有现代平台上工作,从BSD和OSX到Solaris和Unix 我试图避免CMake执行无用的检查: project(cryptopp, CXX) 下面是我尝试生成makefile时发生的情况: $ cmake . -- Check if the system is big endian -- Searching 16 bit integer -- Check size of unsigned short CMake

在CMake中,如何仅在编译器标志不是';你还没用过吗?

我使用的是CMake,我想给一些flags变量添加一个编译标志。例如,我想将-DFOO添加到CMAKE\u CXX\u FLAGS\u RELEASE变量中 现在,我使用: set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} -DFOO" ) 。。。但是如果已经有一个-DFOO标志,我会得到它的两倍,这可能是无害的,但我宁愿避免它。假设我无法控制是否有一个-DFOO作为开始-我如何才能“仅在缺少标志时添加标志”到这样的标志变量 注意事

Cmake 在使用dpkg builpackage构建包时,如何设置CTest的库路径?

我在我的项目中使用CTest。我添加了简单的脚本来运行测试,如POST\u BUILD。当我使用make构建项目时,一切正常 当我使用dpkg buildpackage构建包时,有趣的部分就开始了。CTest似乎在系统目录中查找库,而不是使用当前构建的库。有没有办法告诉CTest或dpkg buildpackage在执行测试时使用当前构建的库 我使用的CMake宏: add_executable(example tests/example.cpp) target_link_libraries(e

带CMake的Gprof

我正在尝试使用gcc和gprof编译一个项目。因此,我在CLion中的CMakeLists.txt中添加了以下行: SET(GCC_COVERAGE_COMPILE_FLAGS "-pg") add_definitions(${GCC_COVERAGE_COMPILE_FLAGS}) 但是,当我运行编译后的二进制文件时,我不会生成gmon.out文件 以下是生成的消息: /home/matteo/Desktop/Xilinx/App/clion-2016.3.3/bin/cmake/bin/c

Cmake-LIBLZMA错误

我一直在尝试从这里构建双引导补丁程序:(我想为我的设备添加支持)。但是,在尝试使用cmake进行配置时,我不断遇到以下错误: E:\DualBoot\DualBootPatcher\build>cmake .. ^ More? -DMBP_BUILD_TARGET=desktop ^ More? -DMBP_PORTABLE=ON ^ More? -DMBP_ANDROID_ENABLE_CCACHE=OFF ^ More? -DMBP_ENABLE_TESTS=OFF ^ Mo

Cmake 如何在调试器中运行CTest测试

假设在CMakeLists.txt中 add_executable(mytarget main.cpp) enable_testing() add_test(mytarget_test0 mytarget -option0) 有什么简单的方法可以让我在GDB中运行mytarget,并从某个特定的CTest测试中使用所有命令行选项吗?(除了在CmakeList中搜索测试,然后将粘贴添加_测试参数手动复制到命令行?) 现实场景:我使用ctest运行所有测试,其中一个失败,我想在调试器中快速打开它

Cmake 从brew使用LLVM 5.0.0时发生错误

我正在尝试使用自制(MacOS High Sierra 10.13.3)提供的股票LLVM 5.0.0。LLVM安装在我的机器上的/usr/local/ceral/LLVM/5.0.0/ 现在,在我的项目中,我在CMakeLists.txt中有以下几行: # Find the LLVM library find_package( LLVM 5.0.0 REQUIRED ) include_directories( "${LLVM_INCLUDE_DIRS}" ) link_directories

cmake如果(定义)工作不正常

我有以下代码片段: message("TARGET_NAME=${TARGET_NAME}") string(TOUPPER "${TARGET_NAME}_BUILDTYPE" TARGET_BUILDTYPE) message("TARGET_BUILDTYPE=${TARGET_BUILDTYPE}") if(DEFINED ${TARGET_BUILDTYPE}) set(TG_BUILDTYPE ${${TARGET_BUILDTYPE}}) message("

CMake';s FindPkgConfig连接路径

我正在努力与CMake一起使用此MWE查找glib-2.0并正确设置标志: cmake_minimum_required(VERSION 2.10 FATAL_ERROR) project(foo) find_package(PkgConfig REQUIRED) pkg_check_modules(GLIB REQUIRED glib-2.0) # print everything which could be defined, as per FindPkgConfig documentati

Cmake 罗斯伦不能';找不到名为的可执行文件

在创建了一个新的包和其中的代码之后,我得到了下面的一个 [rosrun]在下面找不到名为tf_result的可执行文件 /home/aybakana/catkin_ws/src/pcl_教程 我尝试了所有的采购材料等,但它不工作 有人知道为什么会这样吗?我发现原因是我从CMakeLists.txt文件中删除了下面的部分 catkin_package( ## if you dont add this, executables are not found INCLUDE_DIRS include

试图在Ubuntu上配置CMake工具链

该软件最终将在嵌入式Linux平台上运行。首先,我们在同一个文件夹中编写了一个库,其中所有的C文件都在同一个文件夹中,并且在它下面的一个测试文件夹中有C++文件。 迈里布 a、 c b、 c MyLib/测试 test.cpp 这在Windows 10上工作,使用CMake、Ninja和CLangplusdoctest作为测试框架。所有这些工具都安装在vcpkg下 我现在正试图在Ubuntu 16.04上配置并运行所有内容。所有工具和源代码都已从我们的存储库中检索到。我曾尝试使用Qt

yum删除cmake失败

我想更新cmake,旧版本是2.8。但当卸载旧版本cmake时,它不起作用 [chaos@localhost ~]$ cmake --version cmake version 2.8.10.2 [lichao@localhost ~]$ yum info cmake Available Packages Name : cmake Arch : x86_64 Version : 2.8.12.2 Release : 2.el7 Size

现代CMake依赖传播

我们有下面的文件夹结构,同意它有点奇怪,但它就是这样 LIB Cmakelist1 Project MainProject CMakeList2 SubProject1 CMakeList3 SubProject2 CmakeList4 问题1:Cmakelist2包含以下内容: add_subdirectory(LIB/CMakelist1) 这是可以接受的,还是有更好的现代CMake方式? 这个问题解决了,看起来很好

Cmake 如何将基于find_包的库重写为可以直接嵌入父项目的库?

创建的库libwebrtcfrom可与make一起使用;进行安装,希望使用该库的项目以后必须使用CMake提供的find_软件包 一、 但是,希望更改libwebrtc,以便将其作为一个git子模块添加到我当前的项目中,作为一个自定义库,例如,当我键入:cmake。。;生成一个静态/动态库,然后链接到我的主应用程序中。(我前面引用的Qt库示例令人困惑,因为它是在我的主项目之外构建的,并且只在之后链接到它——这不是我想要的)。很抱歉让你感到困惑 要做到这一点,我认为必须将at的ExternalPr

使用CMake build使用Emscripten将libtorch编译为WebAssembly

我正在尝试使用WebAssembly在浏览器中运行我的PyTorch模型(导出到TorchScript)。为此,我需要使用Emscripten编译libtorch。正如PyTorch文档建议使用CMake作为编译器一样,我坚持使用它 我已经成功地使用CMake编译了libtorch,没有出现指定的问题。其次,我还使用Emscripten和CMake为WASM编译了一个简单的测试程序(为了简洁和关注手头的问题,我没有包含这两个文件的CMakeLists.txt文件) 当我试图同时编译这两个文件时,

以非重复的方式在CMake中设置一组编译选项

我在一个有很多配置选项的项目上工作。此时,代码希望通过-D在命令行上传递它们。它们是在旧的构建脚本中硬编码的,我想通过CMake公开它们 对于布尔选项,我提出了以下构造: option(FOO1 "" ON) option(FOO2 "" ON) option(FOO3 "" OFF) target_compile_definitions( mylib PRIVATE $<$<

上一页 1 2 ...  6   7   8   9    10   11   12  ... 下一页 最后一页 共 119 页