1
我正在修改用C++编写的现有开源项目的CMake文件,尝试将其链接到SWIG Java接口文件。我从其他论坛拼凑起来的代码和修补程序是这样的:CMake访问SWIG并将java库链接到现有C++项目的问题
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”
Thanks!
我不知道这段代码有什么问题(如果有的话),但是你可以通过使用“make VERBOSE = 1”来查看在错误/崩溃之前执行的命令, – DLRdave
@DLRdave,是的。我注意到这个“jni.h:没有这样的文件或目录”在最后。所以,希望我所需要做的就是设置JVM路径。我是CMake的新手,所以我正在查找代码以最好的方式做到这一点。 – Mjones8323
我通过在set source properties命令中添加包装器和接口文件的完整路径来解决了我的特殊问题。为了将它指向jni.h,我在开头添加了“FIND_PACKAGE(JNI REQUIRED)”。 – Mjones8323