顯然,core/庫函式在platform/.
我試過擺弄C和CXX標志,嘗試find_library首先使用添加庫,并使用不同的工具鏈,例如,這里也是。
平臺規格:
- MacOS Big Sur, 11.6.5, 2.3 Ghz i9
- CMake - 3.22.2
- Xcode - 13.2.1
uj5u.com熱心網友回復:
好吧,我終于知道是什么問題了。
- 我生成的庫是靜態庫。
- 靜態庫不能自行決議它們的依賴關系(即,這里的庫
platform/不能決議它的依賴關系core/),除非我明確地將它們都添加到 Xcode。 - 我在 Xcode 中添加了兩個庫(
core/library 和)后,它開始作業。platform/
解釋:
靜態庫:雖然您指定了一個依賴項,但它并沒有被工具鏈決議。您必須指定最終可執行檔案的所有依賴項。
- 例如:
libB取決于libA鏈接 hello.exe 時,它??只呼叫你的方法,libB你必須同時指定libB.aANDlibA.a才能作業
- 例如:
動態/共享庫:解決依賴 b/w 庫;只需指定最終可執行檔案所需的依賴關系就足夠了
- 您仍然必須確保兩個 .dylib 都在同一個目錄中
libB.dylib才能加載libA.dylib
- 您仍然必須確保兩個 .dylib 都在同一個目錄中
所以,要么創建一個動態庫,要么在 Xcode 中添加靜態庫的所有依賴項。
uj5u.com熱心網友回復:
假設 libcore_lib.a 在 core/
find_package(CORE core_lib HINTS ${PROJECT_SOURCE_DIR}/core)
include_directories(${PROJECT_SOURCE_DIR}/core)
add_library(pim_ios ${PLATFORM_SOURCES})
target_link_libraries(pim_ios ${CORE})
target_link_libraries(pim_ios PUBLIC "-framework Cocoa" "-framework AppKit" "-framework CoreData" "-framework Foundation")
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/455672.html
