Cmake:如何将库标记为依赖于系统库 我有一个依赖于Linux系统库UTL的C++库。我可以用g++命令g++lib.cpp-lutil编译我的库,它编译得很好

Cmake:如何将库标记为依赖于系统库 我有一个依赖于Linux系统库UTL的C++库。我可以用g++命令g++lib.cpp-lutil编译我的库,它编译得很好,c++,c,linux,cmake,C++,C,Linux,Cmake,当我将我的库添加到我们更大的项目中时,我遇到了麻烦。我可以转到包含库的每个目标,并使用“target\u link\u libraries”命令使其包含util。问题是有许多目标依赖于此库。如果我可以编辑库的CMakeLists.txt并说它依赖于util,那就更好了。但是我找不到一个办法 是否可以将我的库标记为依赖于util,以便包括我的库在内的任何目标也将链接到util?如果创建共享库,则始终可以将其他库链接到它。因此,如果s1.cc和s2.cc是共享公共头.h的库的源,则可以使用 g+

当我将我的库添加到我们更大的项目中时,我遇到了麻烦。我可以转到包含库的每个目标,并使用“target\u link\u libraries”命令使其包含util。问题是有许多目标依赖于此库。如果我可以编辑库的CMakeLists.txt并说它依赖于util,那就更好了。但是我找不到一个办法


是否可以将我的库标记为依赖于util,以便包括我的库在内的任何目标也将链接到util?

如果创建共享库,则始终可以将其他库链接到它。因此,如果s1.cc和s2.cc是共享公共头.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
或者制定或制定适当的规则来执行上述操作。然后libyours.so的所有用户也会链接/usr/lib/libutil.so

然而,您真正关心的是包依赖性。在Debian或Ubuntu上制作一个包。。。。对于您的LIB,您和该软件包将适当地依赖于其他软件包


您还可以使用,并让您的libyour用户使用。然后编写一个libyours.pc文件来描述依赖项。

如果您创建了一个共享库,您可以随时将其他库链接到它。因此,如果s1.cc和s2.cc是共享公共头.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
或者制定或制定适当的规则来执行上述操作。然后libyours.so的所有用户也会链接/usr/lib/libutil.so

然而,您真正关心的是包依赖性。在Debian或Ubuntu上制作一个包。。。。对于您的LIB,您和该软件包将适当地依赖于其他软件包


您还可以使用,并让您的libyour用户使用。然后编写一个libyours.pc文件来描述依赖项。

您所要做的就是使用target\u link\u库将库库库链接到util。现在,每当其他目标可执行文件或库链接到lib时,它们也链接到util

您所要做的就是使用target\u link\u库将库库库链接到util。现在,每当其他目标可执行文件或库链接到lib时,它们也链接到util