2013-03-28 63 views
1

我正在設置一個新的C++項目(在Xcode 4.6中),我非常想使用新的C++ 11標準(lambda表達式,auto等)的特性。我試圖(靜態地)將Gnu科學圖書館(GSL)鏈接到這個項目中,使用Darson對this前一個問題的回答。但是,他的答案建議將編譯器更改爲LLVM GCC 4.2,它不支持新的C++ 11功能。如何在C++ 11和新的STL中使用GSL?

當我更改爲默認的Apple LLVM編譯器4.2時,構建失敗,並且我收到一長串Xcode追溯到新「標題」 libC++「STL。

所以我的問題是:有沒有人找到一種方法來在新的C++ 11標準中使用GSL?它不一定非要在Xcode中,我很喜歡使用任何(UNIX)IDE​​或構建環境。

+0

Darson的回答對我來說是錯誤的;他談論設置庫搜索路徑到'/ usr/include/lib'?僅僅因爲這個原因,我會忽略它。 – trojanfoe 2013-03-28 16:18:20

+0

@trojanfoe我想他是指'/ usr/local/lib',在我的情況下是'/ opt/local/lib'(默認macports庫目錄)。 – ChD 2013-03-28 17:30:49

回答

1

我已經能夠解決我自己的問題了,我想我會分享給那些可能正在努力的人。

就像我懷疑的,問題發生是因爲我的GSL安裝(來自macports)是針對「舊」STL(libstdC++)構建的。因此,我的解決方案是針對「新」STL(libC++)重新編譯GSL。這很容易通過解包的來源和運行

./configure CC=clang CFLAGS="-stdlib=libc++" LDFLAGS="-stdlib=libc++" 

我還添加了--disable-shared只建立靜態庫,並--prefix=...設置構建路徑來完成。然後剩下的就是運行makemake install