庫時,我想在「正常」的程序使用的庫我安裝他們傾向於放在何處emscripten和CMake的
apt-get install libjsoncpp-dev
apt-get install libassimp-dev
然後FIND_LIBRARY中的CMakeLists.txt
FIND_LIBRARY(JSONCPP_LIBRARY NAMES jsoncpp)
TARGET_LINK_LIBRARIES(hello ${JSONCPP_LIBRARY})
FIND_LIBRARY(ASSIMP_LIBRARY NAMES assimp)
TARGET_LINK_LIBRARIES(hello ${ASSIMP_LIBRARY})
當用emscripten編譯我顯然必須以另一種方式安裝這些庫。我創建了一個目錄$ HOME/emscripten-prefix並將它們手動編譯爲具有--prefix = $ HOME/emscripten-prefix的靜態庫,並試圖以CMAKE_INSTALL_PREFIX的形式查找該目錄(對於CMAKE_PREFIX_PATH也類似):
cmake \
-DCMAKE_TOOLCHAIN_FILE=$EMSCRIPTEN/cmake/Platform/Emscripten.cmake \
-DCMAKE_BUILD_TYPE=Debug \
-G "Unix Makefiles" \
-DCMAKE_INSTALL_PREFIX=$HOME/emscripten-prefix
不幸的是它沒有工作。 strace透露CMake會在所有路徑中預先加入 CMAKE_FIND_ROOT_PATH(在$ EMSCRIPTEN/cmake/Platform/Emscripten.cmake中設置爲「$ {EMSCRIPTEN_ROOT_PATH}/cmake」)。我試着用-DCMAKE_FIND_ROOT_PATH改變它,但Emscripten.cmake取代了它。
這樣做的正確方法是什麼?我想我可以通過製作一個複製Emscripten.cmake並修改CMAKE_FIND_ROOT_PATH的腳本來構建它,但這聽起來像是錯誤的方式。