【发布时间】:2012-12-26 14:23:23
【问题描述】:
我目前正在开发 winexe 项目。 winexe 使用 -mno-cygwin 作为 CFLAGS 在 linux 上编译 windows C 代码。
下面是winexesvc目录下的Makefile:-
CFLAGS=-mno-cygwin -Os
LDFLAGS=-mno-cygwin -s -Os
CC_WIN32 := $(shell bash -c 'which {i386,i586}-{mingw32,mingw32msvc}-gcc')
CC_WIN64 := $(shell bash -c 'which {x86_64,amd64}-{mingw32,mingw32msvc}-gcc')
all: winexesvc32_exe.c winexesvc64_exe.c
winexesvc32.exe: winexesvc32.o service32.o
$(CC_WIN32) $(LDFLAGS) -o $@ $^
winexesvc64.exe: winexesvc64.o service64.o
$(CC_WIN64) $(LDFLAGS) -o $@ $^
%32.o: %.c
$(CC_WIN32) -c $(CPPFLAGS) $(CFLAGS) -o $@ $^
%64.o: %.c
$(CC_WIN64) -c $(CPPFLAGS) $(CFLAGS) -o $@ $^
winexesvc32_exe.c: winexesvc32.exe bin2c.exe
./bin2c.exe winexesvc32_exe winexesvc32.exe > $@
winexesvc64_exe.c: winexesvc64.exe bin2c.exe
./bin2c.exe winexesvc64_exe winexesvc64.exe > $@
bin2c.exe: bin2c.c
gcc -s -o $@ $^
clean:
-@rm *.exe *.o *_exe.c
不做任何修改,整个代码编译运行成功。
但是,每当我替换 winexsvc.c 文件或 winexesvc64_exe.c 文件或 winexesvc32_exe.c (我需要修改这三个文件)。当我用修改后的代码替换 winexesvc.c 时,它显示以下错误。修改后的代码不会调用任何其他文件或文件外的任何函数。
所以,问题是当我对上述 3 个文件进行一些修改时,我得到了上述错误。 知道为什么会这样吗?
P.S :- 我已经阅读了关于 gcc 中 -mno-cygwin 选项错误的其他帖子。 但这些与我的问题无关。 附加信息 :- [我是从winexe下winexesvc文件夹的Makefile中得到的。]
【问题讨论】:
-
您遇到什么错误?摆脱那个
-mno-cygwin。 -
您似乎忘记发布您所指的错误。
标签: c linux makefile cygwin winexe