在LINUX上链接静态和动态库

时间:2017-05-13 07:44:01

标签: linux compilation g++

我正在尝试使用以下语句从不同的库构建可执行文件

g++ -fPIC -O -DUSING_PCH -D_REENTRANT -I"/app1/home1/quickfast/boost_1_61_0/include/boost-1_61" -I"/app1/home1/quickfast/boost_1_61_0/." -I"../../src" -I"../src/Examples" -I"/app1/home1/quickfast/boost_1_61_0/include" -L"." -L"/app1/home1/quickfast/boost_1_61_0/stage/lib" -L/app1/home1/quickfast/quickfast-master/lib -l"QuickFAST" -l"boost_thread-gcc44-mt-1_61" -l"boost_system-gcc44-mt-1_61" -l"boost_filesystem-gcc44-mt-1_61" -l"boost_unit_test_framework-gcc44-mt-1_61" -static -ldl -lpthread -o "../../bin/testSequences"

上面的编译语句包括许多库,它们可用作动态库(.so文件)以及静态库(.a文件)。例如,库boost_system-gcc44-mt-1_61在系统中作为libboost_system-gcc44-mt-1_61.so以及libboost_system-gcc44-mt-1_61.a存在。我想要的是,虽然只编译动态库(.so文件),但忽略静态库。有人可以指导。

1 个答案:

答案 0 :(得分:2)

您告诉它使用-static link option来获取静态库。如果你删除它,它可能会按预期工作。