GNU make - 3.81 build失败vs 4.2.1(4.0+?)成功'找不到库'

时间:2016-07-07 19:27:38

标签: windows gcc makefile gnu-make gnu

背景

这与我的问题GNU make - transform every prerequisite into target (implicitly)

有关

INFO

我正在运行我的构建

make all MAKEFILES=Dummy.mk

make v3.81make v4.2.1

Dummy.mk:

%:: null
    @:

null:
    @:
  • Windows 8,64位
  • 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.81MAKEFILES=Dummy.mk进行操作时,我才会看到此错误。

如果我使用make 3.81而没有Dummy.mk,则没有错误。
如果我使用make 4.2.1时使用Dummy.mk,则无误。

我们的项目有点从make v3.81过渡到make v4.2.1,但仍然需要使用make v3.81

问题

导致此错误的原因是什么?

注意

qccgcc的QNX版本。它几乎支持所有gcc功能。

0 个答案:

没有答案