2017-07-18 94 views
0

我很新使用第三方库等,我需要一些帮助,让Eclipse CDT配置为链接到动态SDL2.dll库并能够读取该第三方库中头文件的代码。很多例子似乎都是使用GCC等的Linux系统设置,但我试图让它与已安装在我的PC上的Visual Studio工具链一起工作。在Eclipse CDT中使用Visual Studio Toolchain包含第三方库

路径头文件:C:\ SDL2-2.0.5 \包括

路径.dll和.lib文件:C:\ SDL2-2.0.5 \ lib中\ 64

代码:

#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),我尝试了加入项目“>”属性“>”C/C++常规“>”路径和符号“>”库“下的”SDL2.dll“库路径。 IDE仍然表示无法解析函数调用;尽管#include“C:\ SDL2-2.0.5 \ include \ SDL.h”行没有问题。

我也尝试在Project> Properties> C/C++ Build> Settings> Tool Settings> Linker(link)> Libraries下添加库路径。在“附加libpath”中,我把:“C:\ SDL2-2.0.5 \ lib \ x64”和“Libraries”下放到:“C:\ SDL2-2.0.5 \ lib \ x64 \ SDL2.dll”;仍然没有成功。

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

任何帮助将不胜感激。

回答

0

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

+0

那么我终于能够获得IDE来解析函数调用,并将“Libraries”设置为“SDL2.lib”文件,但是当我构建该程序时,出现此错误:“LINK:fatal error LNK1561 :入口点必须定义“。当我运行该程序时出现以下错误:“启动新的Project.exe时遇到问题,启动配置中指定的程序文件不存在。”这是由于无法找到项目的.exe文件。虽然我认为它应该建立它?另外,我将.dll文件放入项目文件夹中的libs文件夹中。 – ComicalGamer

+0

当发生致命链接器错误时,不会创建可执行文件。出于某种原因,链接器不能识别程序入口点,它应该由'int main()'定义。 所以我们来看一些问题:你使用微软的'CL'还是'GCC';你在'MinGW'下运行吗?你有没有试过建立一个简单的'Hello World'程序来测试你的设置?但是最大的问题是你为什么在Windows上使用Eclipse? Visual Studio社区是免费的,只是工作。 – stanthomas

相关问题