[英]Compiling for windows on cygwin/mingw
因此,我正在尝试为cygwin中的cairo图形库编译一个简单的C示例。 当为cygwin编译时,一切都按预期工作,但对于Windows,它可以编译,但在尝试执行时不起作用。
这是我的makefile:
CFLAGS= -lcairo
#WIN32HEADERS= /usr/i686-w64-mingw32/sys-root/mingw/include/cairo
WIN32HEADERS= /usr/i686-w64-mingw32/sys-root/mingw/include/cairo -I/usr/i686-w64-mingw32/sys-root/mingw/include/glib-2.0 -I/usr/i686-w64-mingw32/sys-root/minclude/glib-2.0 -I/usr/i686-w64-mingw32/sys-root/mlib/glib-2.0/include -I/usr/i686-w64-mingw32/sys-root/minclude/pixman-1 -I/usr/i686-w64-mingw32/sys-root/minclude/freetype2 -I/usr/i686-w64-mingw32/sys-root/minclude/libpng16 -I/usr/i686-w64-mingw32/sys-root/minclude/freetype2 -I/usr/i686-w64-mingw32/sys-root/minclude/libpng16
#WIN32LIBS= ./lib32
WIN32LIBS= ./usr/i686-w64-mingw32/sys-root/mingw/bin
#WIN64HEADERS= /usr/x86_64-w64-mingw32/sys-root/mingw/include/cairo
WIN64HEADERS= /usr/x86_64-w64-mingw32/sys-root/mingw/include/cairo -I/usr/x86_64-w64-mingw32/sys-root/mingw/include/glib-2.0 -I/usr/x86_64-w64-mingw32/sys-root/minclude/glib-2.0 -I/usr/x86_64-w64-mingw32/sys-root/mlib/glib-2.0/include -I/usr/x86_64-w64-mingw32/sys-root/minclude/pixman-1 -I/usr/x86_64-w64-mingw32/sys-root/minclude/freetype2 -I/usr/x86_64-w64-mingw32/sys-root/minclude/libpng16 -I/usr/x86_64-w64-mingw32/sys-root/minclude/freetype2 -I/usr/x86_64-w64-mingw32/sys-root/minclude/libpng16
WIN64LIBS= ./lib64
#WIN64LIBS= ./usr/x86_64-w64-mingw64/sys-root/mingw/bin
CYGWINHEADERS= /usr/include/cairo
CYGWINLIBS= /usr/bin
all:
i686-w64-mingw32-gcc kairo.c -o kairo_32.exe -I $(WIN32HEADERS) -L $(WIN32LIBS) $(CFLAGS)
x86_64-w64-mingw32-gcc kairo.c -o kairo_64.exe -I $(WIN64HEADERS) -L $(WIN64LIBS) $(CFLAGS)
gcc kairo.c -o kairo.o -I $(CYGWINHEADERS) -L $(CYGWINLIBS) $(CFLAGS)
#Build for Windows 32 Bit
win32:
i686-w64-mingw32-gcc kairo.c -o kairo_32.exe -I $(WIN32HEADERS) -L $(WIN32LIBS) $(CFLAGS)
#Build for Windows 64 Bit
win64:
x86_64-w64-mingw32-gcc kairo.c -o kairo_64.exe -I $(WIN64HEADERS) -L $(WIN64LIBS) $(CFLAGS)
#Build for Cygwin - maybe linux in general?
cygwin:
gcc kairo.c -o kairo.o -I $(CYGWINHEADERS) -L $(CYGWINLIBS) $(CFLAGS)
#delete everything but the source files
clean:
rm *.exe
rm *.o
我已经尝试了注释掉的部分以及当前活动的部分,但是没有运气。 尝试执行生成的.exe时,出现错误消息libcairo-2.dll丢失,但是由于它已链接,所以它不应该能够找到它吗? 并且有什么方法可以链接到非系统文件夹中的所需dll? 我不太清楚该怎么做。
导入库位于
/usr/i686-w64-mingw32/sys-root/mingw/lib/libcairo.dll.a
所以你需要定义
WIN32LIBS =的/ usr / i686的-W64-的mingw32 / SYS-根/ MinGW的/ lib中
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.