Emconfigure pkg-config依赖项未解析/ Emscripten

时间:2018-06-07 14:11:33

标签: c++ cross-compiling emscripten

使用带有CMakeList和pkg-config工具的Emscripten编译项目

问题:使用pkg-config的依赖关系尚未解决

使用:

cmake .

完美地运作。

使用emscripten:

emconfigure cmake .

enter image description here 由于某些原因,项目的依赖性尚未得到解决。

一直在调查并发现Emscripten正在使用他自己的pkg-config 搜索已解析依赖项的路径/使用emconfigure:

emconfigure pkg-config --list-all

不会列出通过classic =>

提供的所有库
pkg-config --list-all

我可能在那里遗漏了一些东西。

有没有办法强制emscripten使用全局pkg-config系统?

编辑: 是否需要先将依赖项编译到Emscripten中?

1 个答案:

答案 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在期望包含标头和库的地方过于自以为是。