环境:
Windows
QT 5.13.0
Qt Creator 4.9.1
NDK r20
创建Qml程序,然后选择Android for armeabi-v7a生成
编译链接时报告错误
bin LD : error : cannot find-LC
clang : error : linker command failed with exit code 1(use-v to see invocation)
解决方法1:
方法如下:
其中包括两种方法,实际上是相同的方法,但修改的位置不同
第一:将QMAKE_LINK=-nostdlib添加到pro中
第二:修改Qt q 5 . 13 . 0 Android _ arm v 7 MK specs Android-clang qmake . conf
qmake _ link=$ $ qmake _ cxx $ $ qmake _ cf lags-wl、-exclude-libs、libgcc.a-wl
修改为
qmake _ link=$ $ qmake _ cxx $ $ qmake _ cf lags-wl、-exclude-libs、libgcc.a-wl
实际上,通过在QMAKE_LINK中添加-nostdlib,个人更喜欢第一种方法,但第二种方法不需要按项目修改
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
找到了另一种方法。
但是我认为博主说的话不可理解。
我在这里随便分析一下。
首先看最后的错误消息和编译命令参数。
d : Android NDK Android-NDK-r20/toolchains/llvm/prebuilt/windows/bin/clang
d : Android ndk Android-ndk-r20/toolchain/lib/gcc/arm-Linux-androideabi/
clang : error : linker command failed with exit code 1(use-v to see invocation)
make : * * *[liba aa . so]error 1
所有新版本都使用clang编译,clang .使用exe编译
请查找错误error: cannot find -lc、-lc部分所在的位置。相关部分为d : Android ndk Android-ndk-r20/sources
input(-LUN wind-l atomic-LC _ shared)
指定文件中的连接-lc _shared
如下图所示,比较NDK r20和NDK r16b
R20为每个版本分为一个so,r16版本相同。我们对r20中不同so的内容进行了一些比较。
从Libc .so16到libc .so20的内容为input(-l Android _ support-lunwind-l atomic-LC _ shared)
Libc .so21及更高版本的内容为input(-lunwind-l atomic-LC _ shared)
R16版本的libc。so内容为input(-l Android _ support-lunwind-l atomic-LC _ shared)
实际上也不知道为什么报告错误
我会亲自告诉你我成功测试的方法。
位于Android-ndk-r20 sources cxx-STL llvm-libc libs armeabi-v7a 目录中的libc。复制
如果要编译Arm64 v8a,预计会修改Android-ndk-r20 sources cxx-STL llvm-libc libs arm 64-v8a目录中的相关文件
方法可行,但不麻烦
1.《【cannot find】QT 编译android工程报错 cannot find lc++》援引自互联网,旨在传递更多网络信息知识,仅代表作者本人观点,与本网站无关,侵删请联系页脚下方联系方式。
2.《【cannot find】QT 编译android工程报错 cannot find lc++》仅供读者参考,本网站未对该内容进行证实,对其原创性、真实性、完整性、及时性不作任何保证。
3.文章转载时请保留本站内容来源地址,https://www.cxvn.com/gl/djyxgl/170018.html