簡體   English   中英

OS X Mavericks上gtest的鏈接器錯誤

[英]Linker error for gtest on OS X Mavericks

我已經和gtest單元測試庫工作了一段時間了。 最近我設置了一台新的開發機器並升級到Mac OS X 10.9。 我安裝了

brew tap homebrew/versions
brew install [flags] gcc48

我在本地建立了gtest

cmake .
make

它產生了libgtest.a

我的項目的第二個依賴項是日志庫log4cxx 我像往常一樣得到它:

brew install log4cxx

一切看起來都很好。 但是當我現在嘗試編譯時,我得到了關於未定義符號的大量鏈接器錯誤 ,我無法解釋。 有任何想法嗎?

此問題與編譯時使用-stdlib= 我不能告訴你哪個值( libstdc++libc++ )是正確的值,但它必須與庫編譯時使用的值相匹配。

我想你需要挖掘自制日志才能找到答案。

要看的另一個技巧是確保您編譯的所有內容都使用與您鏈接在一起的所有可執行單元相同的-mmacosx-version-min值。 如果你沒有定義一個,Mavericks將使用10.9,默認情況下它似乎與libc ++鏈接,而如果你使用-mmacosx-version-min = 10.8或更低,它將默認鏈接libstdc ++。

這會給你一個不匹配的地方,你的一些符號是std :: __ 1 :: foo,有些是std :: foo,當你通過c ++ filt運行它們時。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM