Cmake:如何将库标记为依赖于系统库
Cmake: how to mark library as dependent on a system library
我有一个依赖于linux系统库util的C++库。我可以用g++命令"g++lib.cpp-lutil"编译我的库,它编译得很好。
当我把我的图书馆添加到我们更大的项目中时,我遇到了麻烦。我可以转到包含库的每个目标,并使用"target_link_libraries"命令使其包含util。问题是有许多目标依赖于这个库。如果我可以编辑库的CMakeLists.txt并说它依赖于util,那会更好。但我找不到这样做的方法。
是否可以将我的库标记为依赖util,以便包括我的库在内的任何目标也将链接到util中?
您所要做的就是使用target_link_libraries
将库lib链接到util。现在,每当其他目标(可执行文件或库)链接到lib时,它们也会链接到util。
如果你创建了一个共享库,你总是可以将一些其他库链接到它。因此,如果s1.cc
和s2.cc
是你的库的来源(共享一个公共的header.h
),你可以用编译库
g++ -Wall -fPIC s1.cc -c -o s1.pic.o
g++ -Wall -fPIC s2.cc -c -o s2.pic.o
g++ -Wall -shared s1.pic.o s2.pic.o -lutil -o libyours.so
(或者具有执行上述操作的适当的make
或cmake
规则)。那么CCD_ 7的所有用户也将链接CCD_。
然而,您真正关心的是包依赖性。为您的libyours
制作一个软件包(在Debian或Ubuntu上为.deb
…),该软件包将适当地依赖于其他软件包。
您还可以使用并让您的libyours
用户使用pkg配置。然后编写一个描述依赖关系的libyours.pc
文件。
相关文章:
- VS 2015 链接错误 无法构建依赖于 libcurl 的项目
- 为什么内存屏障依赖于变量?
- 反转依赖于 end() 的迭代器
- 编译依赖于 QTCore 库的 WASM
- 如何添加依赖于类本身的模板成员变量
- 初始化依赖于子类的继承类的常量类成员
- Makefile 创建两个库 - 一个依赖于另一个
- 对于BTreeMap和其他依赖于Ord的东西,是否有等效于C++比较器对象?
- 类成员函数参数列表是否可以依赖于模板参数?
- 依赖于类成员属性的类实例成员
- 如何定义依赖于参数包转换的函数的返回类型
- 依赖于模板的错误
- 为什么在以下情况下不需要为依赖类型使用typename
- 为 c++ 构建一个静态库,该库在内部依赖于第三方库
- GCC 为依赖于默认构造函数的模板化类中的静态数据成员提供"undefined reference"错误
- Cmake:如何将库标记为依赖于系统库
- 依赖于Windows句柄的类型是否为指针
- 为依赖于先前值的矩阵运行并行代码
- 在Python中使用依赖于已有库的SWIG为c++扩展使用CMake
- 为依赖于LLVM的项目创建cmakelist