草庐IT

cmake-custom-command

全部标签

c++ - CMake 和 Dylib : symbol definitions

我在为dylib配置cmake时遇到了一些困难。这是我的测试:mylibfunc.cpp#includestaticintcount=0;extern"C"{intmylibfunc(){count++;returncount;}}基本测试.cpp#include#include#includetypedefint(*funcPtr)();intmain(){//Loadfirstlibraryvoid*handleA=dlopen("libmylib.dylib",RTLD_LAZY);funcPtrfunctionA=(int(*)())dlsym(handleA,"mylibfu

c++ - 在 CMake 中处理多个 FIND_PACKAGE 调用

我有一个关于CMake中的FIND_PACKAGE函数的快速问题。我有一个利用点云库(PCL)的项目。PCL依赖于Boost,我的项目也是如此。因此,在我的CMakeLists.txt顶部,我有以下内容:FIND_PACKAGE(BoostREQUIREDCOMPONENTSprogram_options)#PreserveprojectBoostrequiredlibrariesSET(Boost_PROJECT_LIBRARIES${Boost_LIBRARIES})FIND_PACKAGE(PCL1.6REQUIREDCOMPONENTScommonsearch)我的项目使用了B

c++ - 如何使用 cmake 组织大型构建

我正在从事一个更大的项目,我们正在考虑如何组织大型构建。我认为应该/可以用cmake完成,但目前我不知道如何满足我们的所有要求。我们的项目组织结构如下:该项目由多个子项目(称为构建模块)组成每个构建模块可以由多个部分组成,这些部分创建静态或动态库、可执行文件或测试构建模块可能依赖于其他构建模块的公共(public)接口(interface)为了加快构建时间,每个构建模块都应该构建在一个单独的CI服务器上。依赖项不应每次都构建,而应从某个二进制存储库中获取(我们在这里考虑的是nuget,但最简单的解决方案可能是网络共享)考虑到cmake,我正在考虑这样的目录结构-Rootdirector

c++ - CMake 与 gmock

我只是想确保我对CMakeLists.txt的理解是正确的。我的虚拟项目结构:|-+dummy|-+CMakeLists.txt|-+src|--CMakeLists.txt|--Converter.cpp|--Converter.hpp|--main.cpp|-+tests|--CMakeLists.txt|--Converter_ut.cpp|-+thirdparty|-+gmock-1.7.0我的目标是使用CMake创建构建过程。这是我的第一次尝试,所以我认为有一些错误。它有效,但我不确定我是否理解正确,如果你能分享一些意见/建议,我将不胜感激。虚拟/CMakeLists.txt

c++ - CMake 包含和源路径与 Windows 目录路径不同

我想用VisualStudio2010/VC10和CMake创建一个库。Windows的树与CMake的项目树不同。问题是CMake不会在VisualStudio中创建带有头文件和源文件的foolib。我无法更改库的树,因为它是一个古老的代码,有很多共享多个包含文件的库。root|-'includes|'-foo.h|-'src|'-libprojects||'-foolib|||'-bin|||'-project||||'-mak100||||'-CMakeLists01.txt|||'-src||||'-CMakeLists02.txt||||'-foo.cxxCMakeLists

CMake 添加子目录错误 : "When specifying an out-of-tree source a binary directory must be explicitly specified"

我的目录结构如下:rootlibACMakeLists.txtClassA.cpplibBCMakeLists.txtClassB.cppsharedCodeenums.hAbstractClass.hCMake文件中如何包含sharedCode目录?这样classA(在libA中)和classB(在libB中)都可以使用enums.h和AbstractClass.h?在我尝试使用的CMakeLists.txt中:add_subdirectory(../sharedCode)但它给出了错误add_subdirectorynotgivenabinarydirectorybutthegiv

c++ - CMake : softlink resource ( such as GLSL shaders ) or copy each complilation

使用CMake将资源从源目录复制到构建目录的最简单方法是file(COPY${CMAKE_CURRENT_SOURCE_DIR}/resourcesDESTINATION${CMAKE_CURRENT_BINARY_DIR})但是,这仅当我调用cmake时才会更新构建目录中的资源。我需要每次调用make来更新资源。例如现在我开发了一些GLSL着色器。我需要同时更改C++代码和GLSL代码,并且我需要在我的IDE中每次点击compile或run时一切都同步(我将CodeBlocks与CMake生成的项目文件一起使用)简单的解决方案是使从源目录到构建目录的软链接(softlink)。但我不

c++ - Makefile 到 CMake 的转换

我正在尝试将Makefile项目转换为cmake。我的项目有一个可执行文件,它被构建并链接到内部共享库和外部共享库(可执行文件中对两者都有依赖性)。这是我的旧Makefile(通用化):Include=-I$(PROJ_DIRECTORY)/include-I/${EXTERN}/lnIncludeLibrary=-L$(PROJ_DIRECTORY)/build-lshared-L$(EXTERN_LIBBIN)-lexternCPPFLAGS=-D_GLIBCXX_DEBUG-DProjectRescource=$(PROJ_DIRECTORY)/resources-O0-g3-W

c++ - 从对象库构建的 CMake 链接共享库

我无法运行我的cmake项目。它应该构建一个库(核心),然后将这个库添加到一个新的共享库中。问题是生成的库似乎没有正确链接到可执行文件。fatalerror:JNF_NEAT/body.h:Nosuchfileordirectory我有一个结构如下的CMake项目:root->CMakeLists.txt->Core/->CMakeLists.txt->Sources/->Examples/->CMakeLists.txt->Example1/->CMakeLists.txt->Sources/根/CMakeLists.txtcmake_minimum_required(VERSION

c++ - cmake add_custom_command 失败,目标被删除

我正在使用CMake构建测试可执行文件。在构建过程中,我想运行可执行文件,它返回测试是否通过。如果没有,我希望构建失败。但是,当我使用add_custom_command(...POST_BUILD...)并使用Makefile生成器时,测试可执行文件将被删除(在这个问题中解释:WhydoesGNUmakedeleteafile).有没有办法让CMake将可执行文件视为.PRECIOUS,或者以其他方式更改CMakeLists.txt,以便在测试失败时不会删除可执行文件?作为引用,我的CMakeList.txt如下所示(根据实际情况进行了简化):add_executable(UnitT