我工作的一個項目靜態,在這個項目中,我有以下...問題與從外部訪問C++庫
項目1
JNIBox2DWorld.h
static b2World* world = NULL;
JNIBox2DWorld.cpp
world = new b2World(gravity);
現在,這似乎很好地工作,但我想,所以我創建一個新的項目和全球化志願服務青年的舊的頭文件,添加一個OpenGL渲染....
Project2的
b2GLPolygonShape.h
#include <Box2D/JNIBox2DWorld.h>
...
class b2GLPolygonShape
{
public:
void Draw();
void Draw(b2PolygonShape* s);
};
b2GLPolygonShape.cpp
#include "b2GLPolygonShape.h"
void b2GLPolygonShape::Draw(){
LOGD("in Draw");
if(world == NULL){
LOGD("World is not set for some reason");
}
else{
LOGD("World is set");
}
}
我看到了世界運行的Box2D庫中,但是當我試着通過新代碼爲null訪問它....
D/Native (14119): in Draw
D/Native (14119): World is not set for some reason
爲什麼它顯示爲空時,我把它從我的新圖書館但從舊的罰款?既然它是靜態的,它不應該與兩者兼容?
謝謝我想這是我成爲一名Java程序員所得到的結果:-)我會試試看,看看是否修復它。 – Jackie
我認爲可能有一個不同的問題,因爲(如我所述)cpp文件在單獨的庫中。當我按照描述的方式進行操作時,似乎無法理解世界......「b2GLPolygonShape.cpp:6:錯誤:未定義引用'world'」如果需要,我可以發佈我的代碼。 – Jackie
這可能是由於鏈接問題,因爲我可能沒有鏈接.so並只使用標題。讓我兩次檢查 – Jackie