1
我在新版Android Studio中創建了一個小測試項目來測試新的C++支持。CMake Link可執行到共享庫(Android Studio 2.2)
我嘗試從共享庫調用一個函數。該功能是在其他.cpp文件
這裏是我的CMakeLists.txt文件的一部分:
add_library(JNI SHARED src/main/cpp/native-lib.cpp)
add_executable(testex src/main/cpp/test2.cpp)
INCLUDE_DIRECTORIES (src/main/cpp)
target_link_libraries(testex JNI)
的test2.h文件:
class Test{
public:
int side;
intgetArea();
};
的測試2.cpp文件:
#include "test2.h"
int Test::getArea(){
return side*side;
}
我的母語lib.cpp文件的一部分:
JNIEXPORT jstring JNICALL
.....(JNIEnv *env,jobject instance){
Test *test = new Test();
test->getArea();
.
.
.
我得到這些錯誤:錯誤: 未定義參考「測試::的getArea()
鐺++:錯誤:連接命令,退出代碼1失敗(使用-v看到調用)
忍者:建立停止:子命令失敗。
我希望有人能幫助我:)
你應該考慮考慮庫如何工作。你的test2.cpp被編譯進你的可執行文件中。那麼你不能在庫中使用它。 – Hayt