草庐IT

cmake-custom-command

全部标签

c++ - 用cmake将第三方静态库组合成独立的静态库?

这个问题在这里已经有了答案:CombiningseveralstaticlibrariesintooneusingCMake(7个答案)Mergemultiple.sosharedlibraries(2个答案)关闭3年前。比方说,我有libA.alibB.alibC.alibD.so和一些链接到libPack.a的代码。稍后,我将创建libFinal.so,它将链接到libPack.a并且libFinal.so最终用于可执行文件。当链接器创建静态库时,我相信每个动态库都会在编译时解析并包含在静态库中。它是否也适用于(-fPIC)第三方静态库?如何使用CMake将一堆静态库和共享库组合成

将可执行文件链接到第三方依赖共享库时,C++ CMake undefined reference

我阅读了很多相关主题(如1、2、3)但我自己没有找到答案,所以我来了。我有一个构建和可执行的CMake项目,比方说“x”。我创建了一个名为“a.so”的共享库,它依赖于另一个名为“b.so”的共享库。我想在“x”中使用“a”。这是我简化的“x”CMakelists.txt:SET(ROOT_DIR${CMAKE_CURRENT_SOURCE_DIR})LINK_DIRECTORIES(${ROOT_DIR}/lib/a/bin/)#containsliba.soINCLUDE_DIRECTORIES(${ROOT_DIR}/lib/a/include/)#contains"a"head

python - 将 Waf 目标链接到由外部构建系统 (CMake) 生成的库

我的waf项目有两个依赖项,使用CMake构建。我正在尝试做的是遵循dynamic_build3在wafgitrepo中找到的示例,创建一个生成CMake的工具,并在成功构建后,在waf的输出子目录中执行安装:@extension('.txt')defspawn_cmake(self,node):ifnode.name=='CMakeLists.txt':self.cmake_task=self.create_task('CMake',node)self.cmake_task.name=self.target@feature('cmake')@after_method('process

c++ - CMake 错误 : common is required but boost was not found

我正在尝试使用cmake_3.5.0编译opencv_2.4.9以在Qt_5.3.2MinGW中运行一个项目,但它一直显示此错误:Commonneededbutcan'tfindboost我选择“MinGWMakefiles”作为生成器并在配置窗口中“指定native编译器”。我定义了BOOST_ROOT环境变量,这是我的CmakeLists.txt:cmake_minimum_required(VERSION2.8FATAL_ERROR)SET(sampleNameMyApp)set(Boost_USE_STATIC_LIBSON)set(Boost_USE_STATICON)set

c++ - CMake 链接失败

我的C++项目有一个CMakeLists.txt,它可以在Windows上完美运行,使用MSVC,在Linux上使用海合会。我也试图在WindowsforLinux上使用相同的文件进行交叉编译。我正在使用EclipseCDT4-UnixMakefiles作为生成器在Eclipse中创建一个make文件项目。为了使用交叉编译器,我创建了以下工具链文件set(CMAKE_SYSTEM_NAMELinux)set(TOOL_CHAIN_ROOT"C:/mgc/embedded/codebench")#specifythecrosscompilerset(CMAKE_C_COMPILER${T

c++ - cpplint.py 和 cmake : how to specify include files

假设我有一个目录结构如下的项目:myproject├──.git[...]├──CMakeLists.txt└──src├──CMakeLists.txt├──foo.cc└──foo.h如果在src/foo.cc中,我包含像#include"foo.h"这样的头文件,然后运行​​Google的cpplint.py在它上面,它提示src/foo.cc:8:Includethedirectorywhennaming.hfiles[build/include][4]所以我将它包含为#include"./foo.h"。现在我收到另一个投诉:src/foo.cc:8:src/foo.ccsho

c++ - 在 Cmake 中将 flto=jobserver 传递给 gcc

我正在使用flto构建应用程序,我想在make中使用的所有内核上并行化它,例如,如果我使用make-j4然后在4个内核上运行它例子:cmake_minimum_required(VERSION2.8)project(a)set(CMAKE_CXX_FLAGS"${CMAKE_CXX_FLAGS}-flto")set(CMAKE_EXE_LINKER_FLAGS"${CMAKE_EXE_LINKER_FLAGS}-flto=jobserver")add_executable(aa.cppb.cpp)其中a.cpp和b.cpp是任何合理的cpps(其中之一有main)运行make-j2给我

c++ - cmake 中的 Clion 多个调试配置

我有一个带有qt-gui和命令行版本的项目。我有gui和非gui版本的发布和调试配置。我想在gui和非gui版本中为调试配置使用不同的名称。但是,当配置的名称与Debug不同时,调试不起作用,它的行为类似于发布版本。有没有可能有多个调试配置,每个都有不同的名称? 最佳答案 请注意,如果您单击“调试”配置,以下提示将显示在“CMake选项”下方:-DCMAKE_BUILD_TYPE=Debugwillbepassedautomatically因此,当您使用不同的名称创建自己的配置时,您应该尝试将-DCMAKE_BUILD_TYPE=D

c++ - CMake在自定义命令中编译C++文件

我正在尝试使用以下命令在GCC中预编译头文件:ADD_CUSTOM_COMMAND(OUTPUT${CMAKE_CURRENT_BINARY_DIR}/all.hpp.gchCOMMAND${CMAKE_CXX_COMPILER}${CMAKE_CXX_FLAGS}-o${CMAKE_BINARY_DIR}/all.hpp.gch${CMAKE_CURRENT_SOURCE_DIR}/all.hppDEPENDS${CMAKE_CURRENT_SOURCE_DIR}/all.hppCOMMENT"Generatingprecompiledheaders")但是,我没有将CMAKE_CX

c++ - 嵌套的 cmake 库

我们有一个这样组织的C/C++项目:lib1/CMakeLists.txtsublib1/CMakeLists.txtfoo.clog.clog.h目录sublib1/与CMakeLists.txt文件中的add_library和target_link_librariesCMake命令链接。改变:我们不能从foo.c/some-func调用log.c/some-func-2中的函数。链接器提示那些函数未定义。 最佳答案 库和目标文件在您的链接命令中出现的顺序很重要,并且可能导致undefinedsymbol的复杂问题。您没有在帖子中