Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/161.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 链接到库是否与链接到库链接到库相同_C++_Compilation_Linker_Shared Libraries - Fatal编程技术网

C++ 链接到库是否与链接到库链接到库相同

C++ 链接到库是否与链接到库链接到库相同,c++,compilation,linker,shared-libraries,C++,Compilation,Linker,Shared Libraries,我有一个项目foo,它链接到libA、libB和libC 现在,这与projectfoo相同,后者链接到libZ,后者链接到libA,libB,以及libC 我这样做是因为我为SDL2编写了一个包装器库,它链接到lSDL2\u image。 但是,当我使用包装器库编译项目时,它会抱怨未定义的符号,并且只要我将我的项目与libSDL2_image链接,它就会工作。如果有代码调用libA、libB和libC中的函数,链接器必须知道它们,以便在链接阶段查找被调用的符号。无论调用方是您的主应用程序还是构

我有一个项目
foo
,它链接到
libA
libB
libC

现在,这与project
foo
相同,后者链接到
libZ
,后者链接到
libA
libB
,以及
libC

我这样做是因为我为SDL2编写了一个包装器库,它链接到
lSDL2\u image

但是,当我使用包装器库编译项目时,它会抱怨未定义的符号,并且只要我将我的项目与
libSDL2_image
链接,它就会工作。

如果有代码调用
libA
libB
libC
中的函数,链接器必须知道它们,以便在链接阶段查找被调用的符号。无论调用方是您的主应用程序还是构成项目一部分的其他库。

否,您不能将一个库链接到另一个库。这就是为什么会出现链接器错误。您最多可以使用库管理工具将它们合并在一起。