在一个简单的(?)项目中使用emscripten和CMake



所以我有一个相当简单的C++程序,它使用CGAL并使用CMake构建。我可以在没有emscripten:的情况下成功构建和运行它

cmake -DCMAKE_BUILD_TYPE=RelWithDebInfo -G "Unix Makefiles" .
[output looks good]
make
[command works]

那里的一切都很好,我可以运行输出,但是当我尝试像这样使用Emscripten时(这在过去对我有效(:

cmake -DCMAKE_TOOLCHAIN_FILE=/home/brenden/emsdk_portable/emscripten/master/cmake/Modules/Platform/Emscripten.cmake -DCMAKE_BUILD_TYPE=RelWithDebInfo -G "Unix Makefiles" .
[output looks good]
make
main.cpp:2:10: fatal error: 'CGAL/Triangulation_3.h' file not found
#include <CGAL/Triangulation_3.h>
         ^
1 error generated.
ERROR    root: compiler frontend failed to generate LLVM bitcode, halting
make[2]: *** [CMakeFiles/cgal_test.dir/main.cpp.o] Error 1
make[1]: *** [CMakeFiles/cgal_test.dir/all] Error 2
make: *** [all] Error 2

这显然不起作用。

我的CMakeLists.txt看起来像这样:

cmake_minimum_required(VERSION 2.8)
project(cgal_test)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11")
set(SOURCE_FILES main.cpp)
add_executable(cgal_test ${SOURCE_FILES})
target_link_libraries(cgal_test CGAL gmp)

有什么想法吗?所有的CGAL库和头文件都在usr/local/中,所以我有点不知所措

嗯,所以事实证明,你不能只链接一个库,emscripten文档指出,你"……将库构建为位代码,然后将库和主程序的位代码一起编译为JavaScript。">

这听起来既愚蠢又痛苦,但我想这就是答案。

相关内容

  • 没有找到相关文章

最新更新