我最近购买了 OpenGL SuperBible第6版来了解OpenGL 4,其中加载了example code。作者通过提供Visual Studio 2010项目和CMake文件,尽最大努力使代码可在Windows / Linux上构建。
话虽这么说,我想在Eclipse中使用这个示例代码,因为这是我首选的IDE。我的机器上有 Eclipse CDT,Visual Studio 2012 Professional,MinGW和CMake 。我认为将项目移植到Eclipse项目中会很简单,但到目前为止,我的尝试都没有结果。这就是我所做的:
首先,我尝试从CMake文件创建一个Eclipse项目。显然,在CMake(我不熟悉)中,您可以运行命令来生成Eclipse项目文件。根据描述,我认为CMake文件是针对Linux的,所以我从项目的基本目录中运行以下命令:
cmake -G "Eclipse CDT4 - Unix Makefiles" ./
首次检查时,似乎有效。但是,当我将生成的项目导入Eclipse并随后构建它时,我得到了bunch of undefined reference errors;也许这是一个Linux / Windows问题?
第二次,在失败之后,我想我可以将Visual Studio项目转换为Eclipse项目。我用Google搜索了,并得到this tutorial from IBM,其中描述了从VS导出makefile然后使用它。然而,它已经过时了(该教程是从2006年开始的;显然VS在不久前删除了“export makefile”选项)。我可以从VS运行该项目,所以我知道代码都很好。
所以现在,我很茫然。任何人都可以提供有关将此项目移植到Eclipse的任何见解吗?我想我可以手工导入代码,但由于我还不熟悉这个代码(这就是我买这本书的原因!)我宁愿用最简单的方法来避免搞砸。
答案 0 :(得分:2)
与使用Visual Studio构建的lib / GLFW_r32.lib相关的所有链接器问题。
由于MinGW和Visual Studio库是incompatible,因此无法使用与代码示例捆绑在一起的lib / GLFW_r32.lib。
有以下选项:
if(WIN32) if(MINGW) // Add mingw specific lib for OpenGL set(COMMON_LIBS mingw-specific libs here...) else(MINGW) // Visual Studio specific set(COMMON_LIBS sb6 optimized GLFW_r32 debug GLFW_d32) endif(MINGW) elif (UNIX) set(COMMON_LIBS sb6 glfw ${GLFW_LIBRARIES} GL rt dl) else() set(COMMON_LIBS sb6) endif()