当存在同名的共享库时,如何强制链接静态库

假设我有一个文件main.cpp,它使用sin()函数,该函数在libmath中定义。还假设libmath.a和libmath.so在同一个目录中都可用。现在,如果我发出命令g++-o main.cpp-lmath,Linux的默认行为是链接到共享库libmath.so。我想知道有没有一种方法可以强制程序链接到静态库libmath.a,而不删除或移动共享库

您需要将-static传递给链接器,但仅针对您想要的特定库。e、 g:

g++-o main.cpp-Wl,-Bstatic-lmath-Wl,-b动态

发表评论