1
C++で書かれた既存のオープンソースプロジェクトのCMakeファイルを、SWIG Javaインターフェイスファイルにリンクしようと変更しました。私は他のフォーラムからつなぎ合わせや周りいじっているコードは、このです:CMakeがSWIGにアクセスし、既存のC++プロジェクトに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コマンドを実行するとビルドされます。 「:[すべて]エラー2に*を作る」
おかげで、私は(私は後に、新たに統合ライブラリにアクセスするには、この操作を行う必要がある)-j3 makeを実行したときにはまだ、それは非常にあいまいなエラーメッセージを与えて、クラッシュ!
私はこのコードに何が問題なのか分かりませんが、 "make VERBOSE = 1"を使用してエラー/クラッシュの直前にどのコマンドが実行されるかを見ると、クラッシュを引き起こす可能性のあるコマンドを確認できます。 – DLRdave
@ DLRdave、yep。私はこの "jni.h:そのようなファイルやディレクトリはありません"が最後に気づいた。だから、うまくいけば、私がする必要があるのは、JVMのパスを設定することだけです。私はCMakeには新しいので、これを最良の方法で行うためのコードを探しています。 – Mjones8323
set source propertiesコマンドのラッパーとインターフェイスファイルへのフルパスを追加することで、私の問題を解決しました。それをjni.hに向けて、最初に "FIND_PACKAGE(JNI REQUIRED)"を追加しました。 – Mjones8323