如何在windows下gcc编译opengl?

问题描述 投票:0回答:1

我想制作.so文件,所以在Windows中使用opengl(glut)制作项目。

对 opengl 使用“lib、dll 和 .h”

glut.lib, glut32.lib | glut.dll, glut32.dll | glut.h

但附加的 gcc 问题“未定义对‘funcion’的引用”。

我用.so(共享对象)文件制作.o(对象)文件

Command : gcc -c -fPIC main.c -o main.o path 

所以我使用命令来创建文件。

Command : gcc -shared -o main.so -fPIC main.c

但我无法制作.so文件

-> 错误代码未定义对“函数”的引用

Error : __impg_glClear, __imp_glBegin ... etc

如何制作链接到.lib和.dll的.so文件?

Environment : Windows 10, OpenGL(glut), VS2015, added the library dependencies(glut32.lib, glu32.lib, opengl32.lib)

gcc opengl dll hyperlink
1个回答
0
投票

首先,Linux 和 Unix 世界中所谓的 “共享对象” (

.so
) 是 Windows 中的“动态链接库” (
.dll
)。文件扩展名实际上并不重要 – Windows 会加载任何具有有效 PE 标头的文件 – 但为了方便起见,我们将其称为 DLL。

所以我使用命令来创建文件。

Command : gcc -shared -o main.dll -fPIC main.c

但是我无法制作.dll 文件

也就是说,因为您的链接命令确实缺少一些重要的内容:指定要链接到的外部库。我不知道您在项目或 Makefile 中的何处添加了库依赖项,但它们肯定不会显示在链接命令中。要使用 GCC 链接库,必须为每个库提供

-l…
参数。

这个命令的调用方式还有其他一些问题。当然,您想要链接在上一个编译命令中创建的

.o
文件。由于您已经创建了代码,因此
-fPIC
没有任何用处(但也没有坏处)。

所以我建议你使用这个命令来代替:

gcc -shared -o main.dll main.o -lopengl32 -lglut32
© www.soinside.com 2019 - 2024. All rights reserved.