Eclipse IDE中的SDL配置

5
我正在尝试在Linux x86环境(ubuntu)的Eclipse上运行OpenGL代码: http://nehe.gamedev.net/tutorial/vertex_buffer_objects/22002/ 在命令行中输入以下命令后,该代码将能够正常运行:
g++ main.cpp error.cpp lesson45.cpp -o lesson45 -L/usr/X11R6/lib/ -lGL -lGLU sdl-config --cflags --libs 这是来自Makefile的指令。 现在我正在尝试在Eclipse上运行代码,我知道必须设置链接库GL和GLU以及链接库目录/usr/X11R6/lib/。然而,关于sdl-config --cflags --libs,我不确定如何在Eclipse中进行配置。
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”,然后点击确定

这个过程已经经过测试并确认可用,但我不对此负责。信息来源于此处


2

我将尝试从之前给出的建议中综合提供更详细的答案。在 Fedora22 系统上,使用 Eclipse Mars 版本 4.5.1,按照@Zammalad的建议进行以下更改后即可使代码运行。

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

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

  • 在“Package Explorer”下右键单击您的项目,然后选择属性
  • 选择 (C/C++ Build > 设置 > GCC C++ 编译器 > Dialect)
  • 在“语言标准”下选择: "ISO C++11 (-std=c++0x)"。点击应用,然后确定。

配置Eclipse使用SDL2

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

首先,如果您想要在系统中查找必要的库的位置,则可以在终端中执行以下命令,以获取“include”位置和其他编译器/预处理器标志。

$ 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库/路径,请添加来自输出的必要库。
- 在“包资源管理器”下右键单击您的项目,然后选择属性。 - 选择(C/C++一般>路径和符号>库) - 单击“添加”,输入SDL2并单击确定 - 单击“添加”,输入pthread并单击确定
要从输出中添加预处理器指令
- 在“包资源管理器”下右键单击您的项目,然后选择属性。 - 选择(*C/C++构建>设置>GCC C++编译器>预处理器) - 在"定义的符号(-D)"下,点击“添加”图标 - 输入_REENTRANT并单击确定

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

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接