Qt项目中使用Android ndk编译 armeabi-v7可用的protobuf v3.12.3 静态库
程序员文章站
2022-03-10 22:53:03
啊啊啊啊交叉编译啊啊啊,用.mk生成的静态库文件懒得链接其他标准std异常库,导致编译报114甚至514个错经测试,使用ndkr19-c中的make工具编译生成的静态库不能被使用同版本ndk的qt程序链接,但是可被r21b版本ndk成功链接,所以我尝试的最后一个可用组合是r19c生成库+r21b编译apk,后续会尝试全部使用r21b(看见某stderr和一堆exception爆红相关就反胃啊嗯)先执行下面的bash命令,位置随意\color{red}{先执行下面的bash命令,位置随意}先执行下面的....
啊啊啊啊交叉编译啊啊啊,用.mk生成的静态库文件懒得链接其他标准std异常库,导致编译报114甚至514个错
经测试,使用ndkr19-c中的make工具编译生成的静态库不能被使用同版本ndk的qt程序链接,但是可被r21b版本ndk成功链接,所以我尝试的最后一个可用组合是r19c生成库+r21b编译apk,后续尝试全部使用r21b也能正常编译(看见某stderr和一堆exception爆红相关就反胃啊嗯)
cmake -G "MinGW Makefiles" \ -DCMAKE_TOOLCHAIN_FILE=这是你的NDK目录/build/cmake/android.toolchain.cmake \ -DCMAKE_MAKE_PROGRAM=这还是你的NDK目录/prebuilt/windows-x86_64/bin/make.exe \ -Dp
rotobuf_BUILD_TESTS=OFF \ 这是你的protobuf项目目录(src的上一层,项目根目录)/cmake
cmake --build . --target libprotobuf
cmake --build . --target libprotobuf-lite
至于Qt的.pro,稍微放一下,win里我是用动态库链接的,android嫌麻烦就静态编完算了
win32: {
DEFINES += PROTOBUF_USE_DLLS
LIBS += \
-L$$PWD/../lib/ -llibprotobuf \
-L$$PWD/../lib/ -llibprotobufd \
}
android: {
LIBS += $$PWD/../lib/libprotobuf.a
}
本文地址:https://blog.csdn.net/qq_35587463/article/details/107190818
上一篇: 修改vue源码实现动态路由缓存的方法
下一篇: I/O - 文件解压