Eclipse IDE: linking OpenGL Libraries (C++)
Eclipse IDE: linking OpenGL Libraries (C++)
经过数周无休止地尝试将一些库链接到Eclipse,我没有找到任何解决方案。虽然我没有收到错误,但当我按下run时,会弹出一个对话框,显示"OpenGL32Test.exe已停止工作"(顺便说一句,OpenGL32Test是我的Eclipse项目的名称)。下面的代码是我试图编译的,但它根本不会创建它应该创建的黑色窗口和红色方块(代码取自https://www3.ntu.edu.sg/home/ehchua/programming/opengl/HowTo_OpenGL_C.html#mingw_glut一个我试图关注的网站):
#include <windows.h> // For MS Windows
#include <GL/glut.h> // GLUT, includes glu.h and gl.h
/* Handler for window-repaint event. Call back when the window first appears and
whenever the window needs to be re-painted. */
void display() {
glClearColor(0.0f, 0.0f, 0.0f, 1.0f); // Set background color to black and opaque
glClear(GL_COLOR_BUFFER_BIT); // Clear the color buffer
// Draw a Red 1x1 Square centered at origin
glBegin(GL_QUADS); // Each set of 4 vertices form a quad
glColor3f(1.0f, 0.0f, 0.0f); // Red
glVertex2f(-0.5f, -0.5f); // x, y
glVertex2f( 0.5f, -0.5f);
glVertex2f( 0.5f, 0.5f);
glVertex2f(-0.5f, 0.5f);
glEnd();
glFlush(); // Render now
}
/* Main function: GLUT runs as a console application starting at main() */
int main(int argc, char** argv) {
glutInit(&argc, argv); // Initialize GLUT
glutCreateWindow("OpenGL Setup Test"); // Create a window with the given title
glutInitWindowSize(320, 320); // Set the window's initial width & height
glutInitWindowPosition(50, 50); // Position the window's initial top-left corner
glutDisplayFunc(display); // Register display callback handler for window re-paint
glutMainLoop(); // Enter the infinitely event-processing loop
return 0;
}
我用链接库编译程序,我去了:
项目属性=>C/C++构建=>设置=>工具设置=>MinGW C++Linker
我添加了库文件freeglut、glu32和opengl32。程序根本无法运行。此外,在:中
C/C++常规=>路径和符号=>库选项卡
我把这三个图书馆联系起来了。请帮我弄清楚为什么我的程序根本无法运行!是因为我把文件链接搞砸了吗?我在Windows上运行,使用MinGW,但我知道我正在链接库,因为程序成功构建,控制台行似乎是正确的:
g++-o OpenGLtest.exe main.o-lfreeglut-lglu32-lopeng32
我把这个程序运行所需的所有必要的lib文件和头文件都放在它们所属的MinGW根目录(include/GL文件夹和lib文件夹)中。问题出在哪里?
- 所以我曾经做过同样的教程,并使它发挥作用,我认为不必复制dll
添加"-static-libgcc-static-libstdc++"作为新项目的链接器标志。此文本应添加到链接器标志字段中,该字段可通过在项目资源管理器中右键单击新项目并单击"属性"找到。在"项目属性"下,展开"C/C++生成"菜单,然后单击"设置"。在"工具设置"选项卡下,展开"MinGW C++链接器"菜单,然后单击"杂项"。将文本添加到链接器标志字段,然后单击"应用"按钮。
这在当时很有效,但当我今晚尝试时,效果并不好:-\
- 但在实验室的说明中,它确实说要将dll复制到MinGW bin目录中。。.dll的另一个名称是共享库
"从"include\GL"下载、解压缩并复制头文件到"MINGW_HOME\include\GL";从"lib"到"MINGW_HOME\lib"的库,以及从"bin"到"MINGW_HOME\bin"的共享库(应包含在PATH环境变量中),其中MINGW_HOME是MINGW安装的目录。"
- C++ MFC Libraries in Travis CI
- Ardunio Uart class & Libraries
- 在 R 中调用"multi file C++ code with external libraries referenced"
- 链接 boost 库时"Error while loading shared libraries"引发的,除了我无法使用 root 访问权限来修复它
- CMake nested libraries
- 如何处理"Cmake Error: Unable to find the requested Boost libraries"?
- Bjarne Stroustrup在他的FAQ中"foundation libraries"是什么意思?
- Connflicting C++ libraries
- Windows Boost 1.64 VS2017 missing Python libraries
- 单元测试环境中的"java.lang.UnsatisfiedLinkError: *.so: Can't find dependent libraries"
- dlmopen and C++ libraries
- Linking libraries CMake
- 如何创建可供src/code和lib/libraries访问的全局对象
- "directory containing symbolic versions of my app's shared libraries"的位置(ndk-stack)
- creating libraries
- Using ArrayFire libraries
- xcode:添加链接器标志和"link binary with libraries"的区别
- ICU, Unicode and libraries
- Eclipse IDE: linking OpenGL Libraries (C++)
- 提升 "header-only libraries" 和"automatic linking"是什么意思?