在vs2008下使用cygwin(15):i686-pc-cygwin/newlib/libc/misc/Makefile分析

 

快乐虾

http://blog.csdn.net/lights_joy/

lights@hb165.com

   

本文适用于

Cygwin-1.16

Vs2008

   

欢迎转载,但请保留作者信息

 

这个Makefile由上一级目录的makefile调用make all执行。All目标定义为:

all: all-am

all-am: Makefile $(LIBRARIES) $(LTLIBRARIES) $(DATA)

LIBRARIES = $(noinst_LIBRARIES)

noinst_LIBRARIES = lib.a

LTLIBRARIES = $(noinst_LTLIBRARIES)

noinst_LTLIBRARIES未定义

DATA = $(noinst_DATA)

noinst_DATA =

因而此目标将依赖于lib.a目标,其定义为:

lib.a: $(lib_a_OBJECTS) $(lib_a_DEPENDENCIES)

       -rm -f lib.a

       $(lib_a_AR) lib.a $(lib_a_OBJECTS) $(lib_a_LIBADD)

       $(RANLIB) lib.a

在生成所需要的目标文件后,上述脚本将它们打包成lib.a文件。

由于有以下定义:

lib_a_OBJECTS = $(am_lib_a_OBJECTS)

am__objects_1 = lib_a-__dprintf.$(OBJEXT) lib_a-unctrl.$(OBJEXT) /

       lib_a-ffs.$(OBJEXT) lib_a-init.$(OBJEXT)

am_lib_a_OBJECTS = $(am__objects_1)

因而此目标有以下的依赖关系。

1.1.1.1             lib_a-__dprintf.$(OBJEXT)

这个目标定义为:

lib_a-__dprintf.o: __dprintf.c

       $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-__dprintf.o `test -f '__dprintf.c' || echo '$(srcdir)/'`__dprintf.c

直接编译即可。

 

1.1.1.2             lib_a-unctrl.$(OBJEXT)

这个目标定义为:

lib_a-unctrl.o: unctrl.c

       $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-unctrl.o `test -f 'unctrl.c' || echo '$(srcdir)/'`unctrl.c

直接编译即可。

 

1.1.1.3             lib_a-ffs.$(OBJEXT)

这个目标定义为:

lib_a-ffs.o: ffs.c

       $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-ffs.o `test -f 'ffs.c' || echo '$(srcdir)/'`ffs.c

直接编译即可。

 

1.1.1.4             lib_a-init.$(OBJEXT)

这个目标定义为:

lib_a-init.o: init.c

       $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-init.o `test -f 'init.c' || echo '$(srcdir)/'`init.c

直接编译即可。

 

 

参考资料

vs2008下使用cygwin1):前言( 2008-10-16 )

vs2008下使用cygwin2):i686-pc-cygwin/newlib/Makefile分析( 2008-10-16 )

vs2008下使用cygwin3):i686-pc-cygwin/newlib/libc/Makefile分析( 2008-10-16 )

vs2008下使用cygwin4):i686-pc-cygwin/newlib/libc/argz/Makefile分析( 2008-10-16 )

vs2008下使用cygwin5):i686-pc-cygwin/newlib/libc/stdlib/Makefile分析( 2008-10-16 )

vs2008下使用cygwin6):i686-pc-cygwin/newlib/libc/ctype/Makefile分析( 2008-10-16 )

vs2008下使cygwin7):i686-pc-cygwin/newlib/libc/search/Makefile分析( 2008-10-16 )

vs2008下使用cygwin8):i686-pc-cygwin/newlib/libc/stdio/Makefile分析( 2008-10-16 )

vs2008下使用cygwin9):i686-pc-cygwin/newlib/libc/stdio64/Makefile分析( 2008-10-16 )

vs2008下使用cygwin10):i686-pc-cygwin/newlib/libc/string/Makefile分析 ( 2008-10-16 )

vs2008下使用cygwin11):i686-pc-cygwin/newlib/libc/signal/Makefile分析 ( 2008-10-16 )

vs2008下使用cygwin12):i686-pc-cygwin/newlib/libc/time/Makefile分析 ( 2008-10-16 )

vs2008下使用cygwin13):i686-pc-cygwin/newlib/libc/locale/Makefile分析 ( 2008-10-16 )

vs2008下使用cygwin14):i686-pc-cygwin/newlib/libc/reent/Makefile分析 ( 2008-10-16 )

 

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
这个报错是由于在编译C代码时缺少了`WinMain`函数引起的。`WinMain`是Windows程序的入口函数,它在Windows GUI应用程序中使用。根据报错信息,你的代码中缺少了对`WinMain`函数的引用,导致链接错误。要解决这个问题,你可以尝试以下几个方法: 1. 确保你的代码中包含了正确的`WinMain`函数定义。检查你的代码中是否有类似于`int WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow)`的函数定义。 2. 确保你的代码中没有使用了错误的函数名或函数签名。检查你的代码中是否有拼写错误或者函数名错误的地方。 3. 确保你的代码中包含了正确的头文件。如果你使用了Windows API或其他相关库,确保你包含了正确的头文件。 4. 确保你的编译器和链接器设置正确。检查你的编译器和链接器的设置,确保它们能够正确地找到和链接`WinMain`函数所在的库文件。 如果你尝试了以上方法仍然无法解决问题,你可以尝试在编译命令中添加相关的库文件路径和链接选项,以确保编译器能够正确地找到和链接`WinMain`函数所在的库文件。 #### 引用[.reference_title] - *1* [运行C时报错:relocation truncated to fit: R_X86_64_PC32 against undefined symbol `WinMain‘ collect2...](https://blog.csdn.net/qq_45921491/article/details/116428973)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

嵌云阁主

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值