2014-01-21 117 views
0

我有一個CMake工具鏈,它應該生成靜態庫以部署在適合所選平臺的客戶端應用程序中。可用的平臺現在僅適用於iOS,但是在運行CMake並生成項目(兩個項目:靜態庫和客戶端都正確構建)之後,Xcode在鏈接過程中無法生成。奇怪的事實是,它不能鏈接到像「std」這樣的基本庫。Cmake:鏈接到iOS庫

以下鏈接問題:

Undefined symbols for architecture armv7: 
    "typeinfo for std::codecvt<wchar_t, char, __mbstate_t>", referenced from: 
     typeinfo for boost::filesystem::detail::utf8_codecvt_facet in boost(utf8_codecvt_facet.o) 
    "std::codecvt<wchar_t, char, __mbstate_t>::~codecvt()", referenced from: 
     boost::filesystem::detail::utf8_codecvt_facet::~utf8_codecvt_facet() in boost(utf8_codecvt_facet.o) 
     boost::filesystem::detail::utf8_codecvt_facet::~utf8_codecvt_facet() in boost(utf8_codecvt_facet.o) 
    "VTT for std::istream", referenced from: 
     boost::cpp_regex_traits<char>::toi(char const*&, char const*, int) const in boost(instances.o) 
    "std::numpunct<char>::id", referenced from: 
     boost::cpp_regex_traits<char>::toi(char const*&, char const*, int) const in boost(instances.o) 

我在這sample

有人創造了cmake的項目作爲有線索?

+0

那麼你是否有iOS版本的增強版本(它必須是armv6,armv7,armv7s和i386架構的「胖庫」)? – trojanfoe

+0

不是100%肯定的,但也許你只是缺少'-stdlib = libC++'編譯選項。 – ComicSansMS

回答

0

感謝大家,

我只需添加標誌 「-stdlib =的libC++」 解決(如ComicSansMS建議,感謝)和命令include_directories($ {} Boost_DIR)到的CMakeLists.txt

謝謝 Roberto