zoukankan      html  css  js  c++  java
  • 编译 警告 linker input unused

    xxx-linux-clang: warning: -lc: 'linker' input unused
    xxx-linux-clang: warning: -lm: 'linker' input unused
    xxx-linux-clang: warning: -Z-reserved-lib-stdc++: 'linker' input unused
    xxx-linux-clang: warning: -lpthread: 'linker' input unused

    上面的warning 是因为:

    LIBS = -lm -lc -lpthread

    ##-$(CC) $(C_INCLUDE) $(CFLAGS) -I. $(LIBS) -c $< -o $@

    应该去掉 $(LIBS)

    原因:http://hi.baidu.com/zeyu203/item/d667ff12c7982c2df6625ccb

    使用-c是编译成.o的中间文件,这一步只检查语法错误,不检查依赖关系,所以不能加-l,因为既然不检查依赖关系,你给他指明链接文件,岂不多余

    但是-l还是要加的,只要在使用.o文件最终链接时加上就可以了,无论依赖关系多么复杂,只要记住一个c一个o,然后把一个文件夹里的o弄到一个链接库a里,最后用所有的o,-l所有的a,链接成为可执行文件

    一句话,编译是编译,链接是链接,编译的时候不能链接,链接的时候不要再编译,所以-c与-l两个选项不能同时使用

    修改后的 Makefile 段落:

    all:$(PRG)

    $(PRG): $(NObjs)
        -$(CC) $^ -o  $@  $(C_INCLUDE) $(LIBS) $(CFLAGS)
        -rm -f $^

     %.o: %.c
        -$(CC) $(C_INCLUDE) $(CFLAGS) -I. -c $< -o $@
     %.o: %.cpp
        -$(CXX) $(C_INCLUDE) $(CPPFLAGS) -I. -c $< -o $@
     %.o: %.cc
        -$(CC) $(C_INCLUDE) $(CFLAGS) -I. -c $< -o $@
     %.o: %.C
        -$(CC) $(C_INCLUDE) $(CFLAGS) -I. -c $< -o $@
       

  • 相关阅读:
    Platform创建WinCE内核时的编译错误
    evc4下载
    WinCE NK.bin与NK.nb0
    怎样安装SQL Server CE
    WinCE 5.0 & its eboot
    WinCE 5.0边做边学(4)
    nema协议解析
    wince romfs的一点讨论
    学习VC++时经常会遇到链接错误LNK2001
    wince 来电防火墙静音实现的几种办法
  • 原文地址:https://www.cnblogs.com/dayInAndOut/p/3727319.html
Copyright © 2011-2022 走看看