我想跨平臺編譯帶有sqlcipher支持的NPM Sqlite3。我正在使用Ubuntu 16.04爲基於linux armv7的SOC(系統芯片)進行交叉編譯。帶有sqlcipher支持的NPM sqlite3
所以我開始交叉編譯OpenSSL爲arm構建sqlcipher。我成功地將交叉編譯的sqlcipher生成了一個靜態庫(libsqlcipher.a)。
現在我正在嘗試獲取項目的NodeJS端。我需要支持sqlcipher的sqlite,爲arm編譯。我正在使用SOC SDK來構建至今。
我使用節點v4.6.1和npm v2.15.9進行交叉編譯。我確定我在Ubuntu上安裝了與SOC相同的版本。
我使用交叉編譯命令如下:
npm install sqlite3 --target_arch=arm --enable-static=yes --build-from-source --sqlite_libname=sqlcipher -fPIC --sqlite=home/onkar/Library/sqlcipher-master/.libs --verbose
我導出libsqlcipher.a的位置LDFLAGS。當我嘗試交叉編譯時,出現以下錯誤。有人可以幫我解決這個錯誤嗎?
/home/linuximage/sdk/sysroots/x86_64-angstromsdk-linux/usr/libexec/arm-angstrom-linux-gnueabi/gcc/arm-angstrom-linux-gnueabi/5.2.1/real-ld: error: /home/Library/sqlcipher-master/.libs/libsqlcipher.a(sqlite3.o): requires unsupported dynamic reloc R_ARM_THM_MOVW_ABS_NC; recompile with -fPIC
collect2: error: ld returned 1 exit status
node_sqlite3.target.mk:129: recipe for target 'Release/obj.target/node_sqlite3.node' failed
make: *** [Release/obj.target/node_sqlite3.node] Error 1
請讓我知道如果你需要任何額外的信息,我會很樂意爲您提供相同。
感謝, Onkar