gpt4 book ai didi

c - 在 GCC 4.6 中使用 -mno-cygwin 选项

转载 作者:行者123 更新时间:2023-11-30 17:55:41 25 4
gpt4 key购买 nike

我目前正在开发 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(我需要修改这3个文件)。当我用修改后的代码替换 winexesvc.c 时,它显示以下错误。修改后的代码不会调用任何其他文件或文件外的任何函数。

所以,问题是当我对上述 3 个文件进行一些修改时,我收到上述错误。知道为什么会发生这种情况吗?

P.S :- 我读过其他关于 gcc 中 -mno-cygwin 选项错误的文章。但这些与我的问题无关。附加信息 :-[我从winexe下winexesvc文件夹的Makefile中得到了这个。]

最佳答案

已解决:-我使用 i586-mingw32msvc-gcc 命令以及合适的标志来手动编译每个文件,然后相应地链接它。

得到了所需的结果。

关于c - 在 GCC 4.6 中使用 -mno-cygwin 选项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14041916/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com