2015-06-22 64 views
0

我正在嘗試使用GNAT 95編譯我的計算機上運行CENTOS 7 64位與GNAT-GPL 2015 bundle的程序。我得到的是這樣的一個編譯器消息:Ada封裝庫項目GNAT

gprbuild: encapsulated library projects not supported on this platform 

我GPR文件看起來像這樣:

with "bc.gpr"; -- Pull in the booch95 components since ada95 doesnt have collections 
with "mylibrary.gpr"; -- one of my library projects 

library project Registry is 
    for Source_Dirs use ("src/**"); 
    for Object_Dir use "bin"; 

    for Library_Name use "registry"; 
    for Library_Standalone use "encapsulated"; 
    for Library_ALI_Dir use "lib/registry"; 
    for Library_Dir use "plugins"; 
    for Library_Kind use "dynamic"; 
    for Library_Interfaces use ("..."); 

    package Compiler is 
     for Default_Switches ("Ada") use ("-g", "-gnat95"); 
    end Compiler; 

    package Linker is 
     for Linker_Options use ("-ldl", "-lgcov"); 
    end Linker; 
end project; 

了Booch組件庫是一個靜態庫項目。卸下包裹原因阿達拋出另一個錯誤有關試圖混合靜態和動態庫:

shared library project "registry" cannot import static library project "bc" 

任何想法可能會導致Ada的編譯器將崩潰?

+0

註冊表庫必須是動態的嗎?使用'Library_Kind使用「static」會發生什麼情況;'? –

回答

2

除非您使用的是非常老版本的BC,你可以通過場景變化LIBRARY_TYPE設置爲relocatable建設作爲共享文件或動態庫;通過設置爲環境變量,或者通過設置爲環境變量,或者通過設置爲環境變量,或者通過設置爲環境變量,或者使用GPS。我不是GPS用戶,但是調查過它似乎(在GPS GPL 2014中),您在左側的選項卡中選擇場景,該選項卡應該顯示項目中的場景變量以及它所依賴的項目(bc在你的情況)。選擇一個你想改變的並點擊鋼筆圖標,你會看到一個對話框來更新它。

Setting a scenario variable in GPS

+0

如何將-XLIBRARY_TYPE = relocatable參數添加到使用GPS的gnatmake命令中? – mikeyGlitz

+0

增加了一個設置'with'ed項目中定義的場景變量的示例。 –

+0

我沒有意識到GPS中有一個場景選項卡。 – mikeyGlitz