3

如何使用 MinGW 编译器包含glfw.h和链接库libglfw.a以及libglfadll.a在 eclipse juno c++ 中。这是我在设置它时所做的尝试:

在此处输入图像描述

这是我尝试使用的构建命令:

g++ -o Practice.exe "src\\main.o" "-lC:\\Users\\Kaiden.ZEUS\\Files" & "Folders\\Programming\\C++\\Workspaces\\Practice\\Practice\\lib\\libglfw.a" "-lC:\\Users\\Kaiden.ZEUS\\Files" & "Folders\\Programming\\C++\\Workspaces\\Practice\\Practice\\lib\\libglfwdll.a"

4

1 回答 1

3

这些都不是 OpenGL 或 GLEW 所特有的,您在这里处理的是基本的程序员技能:如何配置编译器链接器工具链以使用其他库。这是必不可少的知识,所以请耐心地学习它。以下只是您应该更改的注释的简短列表。但是你真的应该学习一些关于编译和链接过程的学习材料来理解它。


您应该将库和头文件放在系统范围的目录中,而不是编译器套件的标准目录,并将它们配置为编译器和链接器的附加搜索路径。

不要将第 3 方库和头文件放入您的项目源代码树中,除非您采取适当的预防措施,以免干扰可能已安装的系统范围实例。

此外,您必须在 GLFW 的静态或动态链接版本之间进行选择。如果您同时使用两者,则会出现符号冲突(这是 GLFW 特有的)。

在您的构建命令行中,您正在使用带有正斜杠的 -l option with *directories*. This is wrong, search paths are specified using-L (capital L), while-l ` ,从而节省了一些输入,即转义以生成命令的单个反斜杠。在你的情况下(我缩短了路径)(lower l) just specifies library names without the path, prefix and suffix. Also you can replace backslashes/\\

g++ -o Practice.exe "src/main.o" "-LC:/Users/Kaiden.ZEUS/Files/ ... /lib" "-lglfw"

或者

g++ -o Practice.exe "src/main.o" "-LC:/Users/Kaiden.ZEUS/Files/ ... /lib" "-lglfwdll"

但是,此编译命令缺少包含文件的规范。假设您已经安装了 GLEW 标头,C:/Users/Kaiden.ZEUS/Files/ ... /include/GL您将添加

"-IC:/Users/Kaiden.ZEUS/Files/ ... /include/GL"

到命令行。

于 2013-04-16T09:15:28.703 回答