用g+编译+;通过链接android ndk构建的.so文件 我有一个巨大的C++代码库,有很多库依赖项,并且有一个用于构建一个LIGBG.的链接文件。我正在一个android项目上成功地使用这个libGame.so

用g+编译+;通过链接android ndk构建的.so文件 我有一个巨大的C++代码库,有很多库依赖项,并且有一个用于构建一个LIGBG.的链接文件。我正在一个android项目上成功地使用这个libGame.so,c++,gcc,android-ndk,g++,googletest,C++,Gcc,Android Ndk,G++,Googletest,我使用VisualStudio 2015作为这个C++代码库的IDE,并成功集成了GooGestEt并能够在Windows上运行单元测试。现在,我想在MAC-OS-X上运行我的单元测试,除了ndk构建过程之外,用g++编译器为编译整个项目创建make文件似乎很麻烦。我知道g++编译器可以将“.so”文件链接为库。是否可以将android ndk生成的任何“.so”文件链接到g++编译器 我尝试为我的一个名为“LineSplitterTest”的单元测试类运行以下命令 但编译器会忽略my.so文件

我使用VisualStudio 2015作为这个C++代码库的IDE,并成功集成了GooGestEt并能够在Windows上运行单元测试。现在,我想在MAC-OS-X上运行我的单元测试,除了ndk构建过程之外,用g++编译器为编译整个项目创建make文件似乎很麻烦。我知道g++编译器可以将“.so”文件链接为库。是否可以将android ndk生成的任何“.so”文件链接到g++编译器

我尝试为我的一个名为“LineSplitterTest”的单元测试类运行以下命令

但编译器会忽略my.so文件,并显示以下警告消息:

ld: warning: ignoring file 
/Users/fuat/Development/Game/Sources/App/UnitTest/libGame.so, file 
was built for unsupported file format ( 0x7F 0x45 0x4C 0x46 0x01 0x01 0x01 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 ) 
which is not the architecture being linked (x86_64)
我已经将我的APP_ABI选项更改为“x86”,并构建了另一个libGame。因此,没有任何更改。我无法将“APP_ABI”选项设置为“x86_64”,因为我的google_breakpad依赖项只支持“x86”和“armeabi”


简而言之,我想使用ndk构建过程生成的“.so”文件作为g++编译器上的库。如果你们有任何建议,我真的很感激。

看起来你们正试图针对
libGame构建针对x86_64平台的测试可执行文件。所以
针对不同的Arquit体系结构构建二进制文件。感谢@AntonioPérez的评论,我如何平衡ndk构建系统和g++编译器的体系结构。我已经使用“APP_ABI:=x86”选项和上面的g++compile命令末尾的put“-m32”选项构建了我的so。警告消息根据此架构更改更改如下:文件是为不受支持的文件格式(0x7F 0x45 0x4C 0x46 0x01 0x01 0x01 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00)生成的,该格式不是要链接的架构(i386):抱歉,但我没有使用android ndk的经验。尝试运行命令
$file/Users/fuat/Development/Game/Sources/App/UnitTest/libGame。因此
检查它是为什么架构构建的。
ld: warning: ignoring file 
/Users/fuat/Development/Game/Sources/App/UnitTest/libGame.so, file 
was built for unsupported file format ( 0x7F 0x45 0x4C 0x46 0x01 0x01 0x01 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 ) 
which is not the architecture being linked (x86_64)