环境:

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