gcc上的静态和动态链接

时间:2015-07-28 06:11:18

标签: ubuntu opengl gcc linker

我在我的项目中使用了lib3ds和opengl。要从此项目生成可执行文件,我无法链接这些库。

我用来链接g3上的命令下面的lib3ds:g++ -o exec object.o --static -l3ds 我用来链接opengl:g++ -o exec object.o -lGL

我想在同一个命令中链接两个库。如果我尝试-lGL --static -l3ds,编译器会说/usr/bin/ld: cannot find -lGL

我该如何解决这个问题?

2 个答案:

答案 0 :(得分:4)

-static要求编译器生成静态二进制文件,根本不需要任何动态库链接。您要使用的是-Bstatic-Bdynamic链接器选项:

g++ -o exec object.o -Wl,-Bstatic -l3ds -Wl,-Bdynamic -lGL

答案 1 :(得分:0)

/usr/xxx/lib3ds.a -lGL有效!