有CMake访问SWIG并将java库链接到现有C ++项目的问题

时间:2011-07-27 17:22:32

标签: java c++ cmake swig

我正在修改用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>

谢谢!

1 个答案:

答案 0 :(得分:1)

我通过在set source properties命令中添加包装器和接口文件的完整路径来修复我的特定问题。要将其指向jni.h,我在开头添加了FIND_PACKAGE(JNI REQUIRED)