我正在修改用C ++编写的现有开源项目的CMake文件,试图将其链接到SWIG Java接口文件。我从其他论坛拼凑而成的代码就是这样:
FIND_PACKAGE(SWIG REQUIRED)
INCLUDE(${SWIG_USE_FILE})
INCLUDE_DIRECTORIES(${JAVA_INCLUDE_PATH})
INCLUDE_DIRECTORIES(${CMAKE_CURRENT_SOURCE_DIR}/avogadro/src)
SET(CMAKE_SWIG_FLAGS "")
SET_SOURCE_FILES_PROPERTIES(mainwindow.i PROPERTIES CPLUSPLUS ON)
SET_SOURCE_FILES_PROPERTIES(mainwindow.i PROPERTIES SWIG_FLAGS "-includeall")
SWIG_ADD_MODULE(mainwindow java mainwindow.i mainwindow_wrap.c)
SWIG_LINK_LIBRARIES(mainwindow ${JAVA_LIBRARIES})
我写的/发现有什么问题吗?当我运行cmake命令时,它会构建。然而,当我运行make -j3(我需要这样做以便稍后访问新集成的库)时,它会崩溃,给出非常模糊的错误消息“make: * [all] Error 2”< / p>
谢谢!
答案 0 :(得分:1)
我通过在set source properties命令中添加包装器和接口文件的完整路径来修复我的特定问题。要将其指向jni.h
,我在开头添加了FIND_PACKAGE(JNI REQUIRED)
。