ubuntu - gcc 上的静态和动态链接

标签 ubuntu opengl gcc linker

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

我用来在 g++ 上将 lib3ds 链接到以下命令:g++ -o exec object.o --static -l3ds我用来链接opengl:g++ -o exec object.o -lGL
我想在同一个命令中链接两个库。如果我尝试 -lGL --static -l3ds , 编译器说 /usr/bin/ld: cannot find -lGL .

我怎么解决这个问题?

最佳答案

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

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

关于ubuntu - gcc 上的静态和动态链接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31668566/

相关文章:

linux - 在 ubuntu 13.04 中安装 g++ 4.8

ubuntu - 自动化 Virtualbox 机器中的操作

c++ - ARB_DEBUG_OUTPUT 的访问冲突

将 16 字节字符串与 SSE 进行比较

c++ - GCC -Wuninitialized/-Wmaybe-uninitialized 问题

linux - 在 zip 文件的递归目录中查找文件

linux - gnome-terminal 从文件中执行命令

opengl - glLoadIdentity 和 glPushMatrix/glPopMatrix,为什么不直接使用前者呢?

opengl - haskell 与 Data.Map 更新有关的问题

c - 这个错误是什么意思: `somefile.c:200: error: the frame size of 1032 bytes is larger than 1024 bytes` ?