2011-07-27 7 views
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を実行したときにはまだ、それは非常にあいまいなエラーメッセージを与えて、クラッシュ!

+0

私はこのコードに何が問題なのか分かりませんが、 "make VERBOSE = 1"を使用してエラー/クラッシュの直前にどのコマンドが実行されるかを見ると、クラッシュを引き起こす可能性のあるコマンドを確認できます。 – DLRdave

+0

@ DLRdave、yep。私はこの "jni.h:そのようなファイルやディレクトリはありません"が最後に気づいた。だから、うまくいけば、私がする必要があるのは、JVMのパスを設定することだけです。私はCMakeには新しいので、これを最良の方法で行うためのコードを探しています。 – Mjones8323

+0

set source propertiesコマンドのラッパーとインターフェイスファイルへのフルパスを追加することで、私の問題を解決しました。それをjni.hに向けて、最初に "FIND_PACKAGE(JNI REQUIRED)"を追加しました。 – Mjones8323

答えて

1

set source propertiesコマンドのラッパーとインターフェイスファイルへのフルパスを追加することで、私の問題を解決しました。 jni.hに向けるには、最初にFIND_PACKAGE(JNI REQUIRED)を追加しました。

関連する問題