[英]How to prevent CMake from double compiling sources when bundling static C++ libraries?
[英]How to create iOS Framework with c++ sources and static libraries
我有c ++源代碼和一些第三方靜態庫,代碼正在使用。 我有一個簡單的iOS應用程序,它運行此代碼。 基本上,有這樣的模塊:
和依賴項:ios_app - > my_lib.a - >第三方靜態庫
一切都按預期工作。
現在我想創建一個iOS框架,它將擁有my_lib.a和3rd_party.a,而ios_app將使用它。 我在做什么:
add_library (my_lib SHARED "")
target_sources(my_lib PRIVATE _my_source_files_)
set_target_properties(my_lib PROPERTIES FRAMEWORK TRUE _OTHER_KEYS_)
target_link_libraries (my_lib _3rd_party_libs)
然后我構建框架並檢查它有什么命令:nm -gU my_framework.framework / my_framework問題是,該id不顯示源文件中的符號,而只顯示來自第三方庫的符號。 結果,當使用這樣的框架時,我得到編譯錯誤'找不到架構的符號......'
另一方面,如果我將我的框架聲明為“靜態”:
add_library (my_lib SHARED "")
但之后我沒有看到輸出中的所有第三方庫,但看到我的來源的符號。
我用谷歌搜索,沒有找到任何答案或例子。 可能是我遺失了什么?
解決方案是以正確的方式導出類。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.