背景
这与我的问题GNU make - transform every prerequisite into target (implicitly)
有关INFO
我正在运行我的构建
make all MAKEFILES=Dummy.mk
make v3.81
和make v4.2.1
Dummy.mk:
%:: null
@:
null:
@:
make
使用的外壳是
C:\Users\User1\Desktop\A\Project\bld\armle-v7\release\subProj>sh --help
GNU bash, version 3.1.17(1)-release-(i686-pc-msys)
...
当我使用make v3.81
构建时,构建在此编译命令上失败:
qcc -Vgcc_ntoarmv7le -lang-c++ -Wl,-rpath-link,\
C:\Users\User1\Desktop\A\QNX_SDK\target\qnx6/armle-v7/lib -Wl,-rpath-link,\
C:\Users\User1\Desktop\A\QNX_SDK\target\qnx6/armle-v7/usr/lib -Wl,-O1 -Wl,-rpath,\
C:/fs/mp/qt5/lib -Wl,-rpath,C:/fs/mp/fordhmi/lib -shared -Wl,-soname,libHmiLogging.so.1 -o\
libHmiLogging.so.1.0.0 .obj/hmiloggingcategory.o .obj/hmiloggingcategoryregistry.o\
.obj/hmiperformancelogging.o .obj/hmitracelogging.o\
-LC:\Users\User1\Desktop\A\QNX_SDK\target\qnx6/armle-v7/lib\
-LC:\Users\User1\Desktop\A\QNX_SDK\target\qnx6/armle-v7/usr/lib\
-LC:/Users/User1/Desktop/A/Proj/qt5binaries/lib -lQt5Core \
-LC:/QNX650/target/qnx6/armle-v7/lib \
-LC:/QNX650/target/qnx6/armle-v7/usr/lib -lm
C:\Users\User1\Desktop\A\QNX_SDK\host\win32\x86\usr\bin\ntoarm-ld: cannot find -lQt5Core
cc: C:/Users/User1/Desktop/A/QNX_SDK/host/win32/x86/usr/bin/ntoarm-ld caught signal 1
make[3]: *** [C:/Users/User1/Desktop/A/Proj/lib/armle-v7/release/lib/libHmiLogging.so.1.0.0] Error 1
你可能正在思考"你还没有告诉它在哪里找到那个图书馆"但是当我使用make 3.81
和MAKEFILES=Dummy.mk
进行操作时,我才会看到此错误。
如果我使用make 3.81
而没有Dummy.mk
,则没有错误。
如果我使用make 4.2.1
时使用Dummy.mk
,则无误。
我们的项目有点从make v3.81
过渡到make v4.2.1
,但仍然需要使用make v3.81
。
问题
导致此错误的原因是什么?
注意
qcc
是gcc
的QNX版本。它几乎支持所有gcc
功能。