2015-01-02 54 views
0

我正在嘗試將ChaiScript集成到我的小Mac/C++項目中。雖然我可以通過使用ChaiScript chai(Std_Lib.library())構建chaiscript_stdlib.hpp /使用它,但我真的想單獨構建這個庫。Mac/C++上的ChaiScript std lib在運行時尋找DLL

但是,在構建dylib後,確保安裝路徑/名稱指向正確的位置,並使用它建立我的項目,我總是會得到一個運行時錯誤,它無法找到.dll ...不用說我對於爲什麼它甚至會在mac上尋找DLL,我深感困惑,但是任何人都可以分享一些我在做錯的事情嗎?

乾杯!

PS:剛需額外明確,錯誤是不是定位名爲.dylib(這將是第一位的,如果我沒有在可執行文件的路徑複製LIB),但在運行時加載的dylib它抱怨它無法找到.dll

+0

請發佈確切的錯誤,你越來越。 – lefticus

回答

1

不知道你得到的確切的錯誤,我猜你錯誤閱讀錯誤信息。

查找其運行時庫時,ChaiScript不會歧視文件擴展名。它也不會嘗試加載多個標準庫。這是爲了解決這樣一個事實,即mingw/cygwin構建可能會生成.so或.dll文件或其他內容,具體取決於開發人員的興趣。因此,在所有平臺上,ChaiScript都會嘗試查找具有可能的擴展名集的庫(.so, .dll, ``

如果將標準庫構建爲dylib,則可能是構建錯誤。一個dylib是一個共享庫,而無論是.so.bundle是一個可加載模塊,參考這裏:

http://fink.thetis.ig42.org/doc/porting/shared.php

的CMake編譯使用的.so擴展,這是ChaiScript使用搜索時,MacOS的可加載模塊圖書館。

請確保您將標準庫編譯爲適合您平臺的共享模塊。我認爲-bundle需要傳遞給鏈接器。

+0

嘿,謝謝你的回覆。我在xcode中構建了庫,並沒有直接使用CMake。 懷疑我可能構建了錯誤,但我不知道我到底做錯了什麼(因此請在這裏:)) 感謝您的澄清!將嘗試一下並接受你的答案^^ – benitosub