在LINUX上链接静态库和动态库

在LINUX上链接静态库和动态库,linux,compilation,g++,Linux,Compilation,G++,我试图使用下面的语句从不同的库构建一个可执行文件 g++-fPIC-O-DUSING_PCH-D_可重入-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_1_61_0/include“-L”。/app1/home1“boost_线程

我试图使用下面的语句从不同的库构建一个可执行文件

g++-fPIC-O-DUSING_PCH-D_可重入-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_1_61_0/include“-L”。/app1/home1“boost_线程-gcc44-mt-1_61”-l“boost_系统-gcc44-mt-1_61”-l“boost_文件系统-gcc44-mt-1_61”-l“boost_单元测试框架-gcc44-mt-1_61”-静态-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文件)已拾取,静态库被忽略。请有人指导。

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

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

您告诉它使用
-static
拾取静态库你期待。

是的,我的意思是
-static
,并编辑了答案以反映这一点。谢谢@MikeKinghan。是的,我的意思是
-static
,并编辑了答案以反映这一点。谢谢@MikeKinghan。