使用带有CMakeList和pkg-config工具的Emscripten编译项目
问题:使用pkg-config的依赖关系尚未解决
使用:
cmake .
完美地运作。
使用emscripten:
emconfigure cmake .
一直在调查并发现Emscripten正在使用他自己的pkg-config 搜索已解析依赖项的路径/使用emconfigure:
emconfigure pkg-config --list-all
不会列出通过classic =>
提供的所有库pkg-config --list-all
我可能在那里遗漏了一些东西。
有没有办法强制emscripten使用全局pkg-config系统?
编辑: 是否需要先将依赖项编译到Emscripten中?
答案 0 :(得分:0)
我遇到了一个类似的问题,我正在使用的库正在调用pkg_check_modules(GSL gsl)
。我能够解决例如find_package(DoubleConversion REQUIRED)
通过提供cmake args
-DDoubleConversion_LIBRARY:FILEPATH=/home/myuser/code/double-conversion/libdouble-conversion.a -DDoubleConversion_INCLUDE_DIR:PATH=/home/myuser/code/double-conversion/double-conversion
进入cmake调用,但是当我尝试对GSL库进行类似操作时,定义了GSL_INCLUDE_DIR和GSL_LIBRARY,因此找不到它们,并且在make
调用中缺少标头错误。
我从PKG_CONFIG_USE_CMAKE_PREFIX_PATH的文档中了解到(理论上),如果我只使用单个arg -DCMAKE_PREFIX_PATH="${LIBS_DIR}/double-conversion;${LIBS_DIR}/gsl"
,则不必查找库路径并包括每个库的路径,并且我不需要关心是否使用find_package或pkg_check_modules找到了软件包。但是,它似乎不能替代我用于DoubleConversion的args,也无法为我提供一种告诉pkg_check_modules在哪里寻找GSL库的方法。也许cmake在期望包含标头和库的地方过于自以为是。