5

我正在尝试在 Linux x86 环境(ubuntu)中的 Eclipse 上运行 OpenGL 代码:http: //nehe.gamedev.net/tutorial/vertex_buffer_objects/22002/ 在命令行中输入后代码将正常运行

g++ main.cpp error.cpp course45.cpp -o course45 -L/usr/X11R6/lib/ -lGL -lGLUsdl-config --cflags --libs

这是make文件中的指令。现在我试图让代码在 Eclipse 上运行,我知道我必须设置链接器库 GL 和 GLU 以及链接器库目录 /usr/X11R6/lib/。但是,关于sdl-config --cflags --libs,我不确定如何在 Eclipse 中配置它。

4

3 回答 3

3

创建一个新的 C++ 项目(文件 > 新建 > C++ 项目)。你需要选择一个工具链——Linux GCC。

如果要使用 C++11,请执行以下操作:

  1. 右键单击“包资源管理器”下的项目,然后选择属性。
  2. 选择(C/C++ 构建 > 设置 > GCC C++ 编译器 > 其他)
  3. 在“其他标志”下添加:-std=c++0x
  4. 单击应用然后确定

配置 Eclipse 以使用 SDL2

  1. 右键单击“包资源管理器”下的项目,然后选择属性。
  2. 选择(C/C++ 常规 > 路径和符号 > 库)
  3. 单击“添加”并添加“SDL2”,然后单击确定
  4. 单击“添加”并添加“SDL2main”,然后单击确定

这个过程已经过测试并确认有效,尽管我不认为它有任何功劳。来自这里的信息

于 2014-03-23T17:34:41.907 回答
2

如果您找不到更文明的方式来配置 Eclipse,您可以随时从sdl-config调用中提取此信息并手动配置设置:

## Compiler flags
$ sdl-config  --cflags
-I/usr/include/SDL -D_GNU_SOURCE=1 -D_REENTRANT

## Linker flags
$ sdl-config  --libs
-L/usr/lib/x86_64-linux-gnu -lSDL
于 2013-04-10T22:06:47.027 回答
2

我将尝试结合先前给出的建议提供更全面的答案。在带有 Eclipse Mars 版本 4.5.1 的 Fedora22 系统上,这对我有用。正如@Zammalad 建议的那样,首先进行一些更改

  • 创建一个新的 C++ 项目(文件 > 新建 > C++ 项目)。
  • 您将需要选择一个工具链 - Linux GCC

如果要使用 C++11,请执行以下操作:

  • 右键单击“Package Explorer”下的项目,然后选择Properties
  • 选择(C/C++ 构建 > 设置 > GCC C++ 编译器 > 方言
  • 在“<strong>语言标准”下选择:“ ISO C++11 (-std=c++0x) ”。单击应用,然后单击确定。

配置 Eclipse 以使用 SDL2

在这一步,我建议采用@esperanto 的方法来使用系统的终端/shell 来查找或验证系统上 SDL2 所需文件/库的存在/位置。

首先,如果您想在系统上找到必要库的位置,在终端中执行以下命令将为您提供“包含”位置和其他编译器/预处理器标志

$ sdl2-config --cflags

同样,列出库/链接器标志

$ sdl2-config --libs

例如,在我的 Fedora22(64 位)系统上,输出如下所示

$ sdl2-config --cflags --libs
-I/usr/include/SDL2 -D_REENTRANT
-lSDL2 -lpthread

您可以在没有与 eclipse 相关的项目文件的单独临时目录中测试编译 - 即只有源文件 - 如下所示:

$ mkdir /tmp/testing
$ cp -r main.cpp error.cpp lesson45.cpp /tmp/testing/.
$ cd /tmp/testing
$ g++ `sdl2-config --cflags --libs` -o lesson45 main.cpp error.cpp lesson45.cpp

现在,要在 Eclipse 中使用 SDL2 库/路径,请从sdl2-config --libs输出中添加必要的库

  • 右键单击“Package Explorer”下的项目,然后选择Properties
  • 选择(C/C++ 常规 > 路径和符号 > 库
  • 单击“<strong>添加”并键入SDL2并单击确定
  • 单击“<strong>添加”并键入pthread并单击确定

sdl2-config --cflags输出中添加预处理器指令

  • 右键单击“Package Explorer”下的项目,然后选择Properties
  • 选择(*C/C++ 构建 > 设置 > GCC C++ 编译器 > 预处理器
  • 在“已定义符号 (-D) ”下,单击“添加”图标
  • 键入_REENTRANT并单击确定
于 2015-11-16T04:47:59.370 回答