Wenn ich ein Bibliothek in "normalen" Programmen verwenden, möchte ich sie mit aptWo platzieren Bibliotheken für Emscripten und CMake
apt-get install libjsoncpp-dev
apt-get install libassimp-dev
Und dann find_library in 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})
Wenn installieren Kompilieren mit emscripten Ich muss natürlich die Bibliotheken anders installieren. Ich habe ein Verzeichnis $ HOME/emscripten-prefix erstellt und diese manuell als statische Bibliotheken mit --prefix = $ HOME/emscripten-prefix kompiliert und versucht, CMAKE_INSTALL_PREFIX in diesem Verzeichnis (und ähnlich für CMAKE_PREFIX_PATH) zu suchen:
cmake \
-DCMAKE_TOOLCHAIN_FILE=$EMSCRIPTEN/cmake/Platform/Emscripten.cmake \
-DCMAKE_BUILD_TYPE=Debug \
-G "Unix Makefiles" \
-DCMAKE_INSTALL_PREFIX=$HOME/emscripten-prefix
Leider hat es nicht funktioniert. strace enthüllte, dass CMake CMAKE_FIND_ROOT_PATH (welches auf $ EMSCRIPTEN_ROOT_PATH}/cmake in $ EMSCRIPTEN/cmake/Platform/Emscripten.cmake gesetzt ist) allen Pfaden vorgibt. Ich habe versucht, es mit -DCMAKE_FIND_ROOT_PATH zu ändern, aber Emscripten.cmake hat das übersteuert.
Was ist der richtige Weg, dies zu tun? Ich denke, ich kann es bauen, indem ich ein Skript mache, das Emscripten.cmake kopiert und CMAKE_FIND_ROOT_PATH modifiziert, aber das klingt wie der falsche Weg.