2016-07-31 68 views
0

我寫了一個小節點C++插件。在Linux上,我可以編譯和使用它(在node-gyp的幫助下)。但現在我想測試我的手機上的插件(armv7),所以我編譯並使用交叉編譯器libv8.solibnode.soarm architecture)鏈接它,然後將其推入手機。如何交叉編譯armv7上的節點C++插件?

但在adb shell我使用時出現錯誤信息:

node: symbol lookup error: /bitmap.node: undefined symbol: 
_ZN6bitmap9ImageData4InitEN2v85LocalINS1_6ObjectEEE 

這意味着bitmap::ImageData::Init(v8::Local<v8::Object>)無法找到...

爲什麼,我應該怎麼解決呢?先謝謝你!

+0

我剛剛創建了一個當前方法的概述(請參閱編譯一節):[在Android上運行NodeJS的可行選項(2017年8月)](https://stackoverflow.com/a/45649995/8295283) –

回答

0

我只是在調用node-gyp -arch=arm ...之前設置適當的CXX環境變量,它的工作原理!

+0

請您詳細說明一下您如何設置這些CXX環境變​​量以及如何設置?謝謝:) – FMA

+0

@FMA嗨。您應該將其設置爲交叉編譯器的路徑,否則其他人不能提供正確的名稱修改,以便某些方法(如果不是全部)「無法找到」 –