将CMake / Visual Studio项目移植到Eclipse

时间:2013-12-14 21:16:07

标签: eclipse visual-studio visual-studio-2012 cmake

我最近购买了 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的任何见解吗?我想我可以手工导入代码,但由于我还不熟悉这个代码(这就是我买这本书的原因!)我宁愿用最简单的方法来避免搞砸。

1 个答案:

答案 0 :(得分:2)

与使用Visual Studio构建的lib / GLFW_r32.lib相关的所有链接器问题。

由于MinGW和Visual Studio库是incompatible,因此无法使用与代码示例捆绑在一起的lib / GLFW_r32.lib。

有以下选项:

  • 使用Visual Studio as suggested in Readme
  • 使用提供OpenGL支持的MinGW库(在这种情况下,您应该修改CMakeLists.txt - 见下文)
    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()