2017-07-18 92 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

相關問題