小编cnu*_*idu的帖子

在哪里为emscripten和CMake放置库

当我想在"普通"程序中使用库时,我用apt安装它们

apt-get install libjsoncpp-dev
apt-get install libassimp-dev
Run Code Online (Sandbox Code Playgroud)

然后在CMakeLists.txt中使用FIND_LIBRARY

FIND_LIBRARY(JSONCPP_LIBRARY NAMES jsoncpp)
TARGET_LINK_LIBRARIES(hello ${JSONCPP_LIBRARY})

FIND_LIBRARY(ASSIMP_LIBRARY NAMES assimp)
TARGET_LINK_LIBRARIES(hello ${ASSIMP_LIBRARY})
Run Code Online (Sandbox Code Playgroud)

在使用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
Run Code Online (Sandbox Code Playgroud)

不幸的是它没有用.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的脚本来构建它,但这听起来像是错误的方式.

c++ cmake emscripten

6
推荐指数
1
解决办法
911
查看次数

标签 统计

c++ ×1

cmake ×1

emscripten ×1