【问题标题】:Include 3rd party library in Eclipse CDT with Visual Studio Toolchain在带有 Visual Studio 工具链的 Eclipse CDT 中包含第 3 方库
【发布时间】:2017-07-18 09:06:27
【问题描述】:

我对使用 3rd 方库等还是很陌生,我需要一些帮助来将 Eclipse CDT 配置为链接到动态 SDL2.dll 库并能够从这个 3rd 方库中的头文件中读取代码.很多例子似乎都是使用 GCC 等的 linux 系统设置,但我正试图让它与我 PC 上已经安装的 Visual Studio 工具链一起工作。

头文件路径:C:\SDL2-2.0.5\include

.dll 和 .lib 文件的路径:C:\SDL2-2.0.5\lib\x64

代码:

#include "C:\SDL2-2.0.5\include\SDL.h"

int main() {
    SDL_SetMainReady();
    if(SDL_Init(SDL_INIT_VIDEO|SDL_INIT_AUDIO)!=0){
        SDL_Log("Unable to initialize SDL: %s",SDL_GetError());
        return 1;
    }

    return 0;
}

我尝试将包含路径添加到项目>属性>C/C++ 常规>路径和符号>包含>GNU C++(和 GNU C)下的头文件中,并且我尝试将库路径添加到“ SDL2.dll”在 Project>Properties>C/C++ General>Paths and Symbols>Libraries 下。 IDE 仍然说它无法解析函数调用;尽管 #include "C:\SDL2-2.0.5\include\SDL.h" 行没有问题。

我还尝试在 Project>Properties>C/C++ Build>Settings>Tool Settings>Linker(link)>Libraries 下添加库路径。在“附加库路径”下我输入:“C:\SDL2-2.0.5\lib\x64”,在“库”下我输入:“C:\SDL2-2.0.5\lib\x64\SDL2.dll”;还是没有成功。

我什至尝试在 INCLUDE 环境变量中添加 .h 文件的包含路径,并在 Project>Properties>C/C++ Build>Environment 下的 PATH 环境变量中添加 .dll 文件的路径。

任何帮助将不胜感激。

【问题讨论】:

    标签: c++ visual-studio dll eclipse-cdt toolchain


    【解决方案1】:

    在 Windows 上,动态库有两部分:.dll 包含可执行代码并且在运行时需要,.lib 是导入库,它告诉链接器在 .dll 中查找外部。因此,在“库”下,您需要指定导入库 (.lib)。并将.dll 放在可执行文件可以在运行时找到它的地方,例如在同一个文件夹中。

    【讨论】:

    • 好吧,我终于能够让 IDE 解决函数调用,并将“库”设置为“SDL2.lib”文件,但是当我构建程序时出现此错误:“链接:致命错误 LNK1561:必须定义入口点”。当我运行该程序时出现此错误:“Launching New Project.exe 遇到问题。在启动配置中指定的程序文件不存在。”这是由于无法找到该项目的 .exe 文件。虽然我认为它应该建立它?另外,我将 .dll 文件放入项目文件夹中的 libs 文件夹中。
    • 当出现致命的链接器错误时,不会创建可执行文件。由于某种原因,链接器无法识别应由int main() 定义的程序入口点。所以我们提出了一些问题:您使用的是微软CL 还是GCC;你在MinGW下运行吗?您是否尝试过构建一个简单的Hello World 程序来测试您的设置?但最大的问题必须是您为什么要在 Windows 上使用 Eclipse? Visual Studio 社区是免费的,而且可以正常工作。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-05-15
    • 1970-01-01
    • 2018-06-05
    • 1970-01-01
    • 2012-04-20
    • 1970-01-01
    • 2010-11-08
    相关资源
    最近更新 更多