0 c c++ gcc makefile qt-creator
我有一个名为 testlib.pro(使用 Qtcreator)的 C++ 项目,它将创建一个静态库 libtest.a。
该项目还包括 staticlib.a (示例)和 staticlib1.aie 使用其他静态库即时创建一个静态库。创建静态库后,我创建了 C 包装器(testApi.c)以使用使用静态库的 C++ 代码。我正在使用以下选项编译 testApi.c
gcc -o demo testApi.c -L ./testlib -ltest
但是它给出了链接器错误,统计它需要我用来链接 libtest.a 的静态库。所以我用下面的注释重新编译程序,它工作正常
gcc -o demo testApi.c -L ./testlib -ltest -lstatuclib -lstaticlib1
我的理解是,如果我将 libtest.a 运送到另一台机器并尝试编译 testApi.c 文件,则该机器可能需要 staticlib.a 和 staticlib1.a 。但我只想使用新创建的静态库 libtest.a。我错过了吗?
注意:我在 testlib.pro 中使用 -l 选项包含了 staticlib.a、staticlib1.a
小智 5
如果您的库使用其他静态库,则还需要在链接时提供它们。
有一个丑陋的方法(在 Linux 上)。您可以解压缩现有的静态库(或其中的几个)并将它们重新打包到一个新库中。因此,如果您觉得特别活泼,可以解压缩您依赖的那些库,然后将它们的内容与您自己的内容一起打包到一个新库中。丑陋,混乱,可能会导致各种其他问题,但如果这是您想要的方式......