0
cygwin에서 cairo 그래픽 라이브러리를위한 간단한 C 예제를 컴파일하려고합니다. cygwin 용으로 컴파일 할 때 모든 것이 예상대로 작동하지만 컴파일 할 때 창을 실행하지만 실행하려고하면 작동하지 않습니다. cygwin/mingw에서 windows 컴파일하기
이
내 메이크입니다 :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
I했습니다 주석 처리 된 부분뿐만 아니라, 현재 활성화 된 부분,하지만 행운을 시도했다. 결과 .exe를 실행하려고하면 libcairo-2.dll이 누락되었다는 오류가 발생하지만 링크 되었기 때문에 찾을 수 없어야합니까? 그리고 시스템 폴더가 아닌 폴더에 필요한 dll 파일을 링크 할 수있는 방법이 있습니까? 나는 그 일을 어떻게하는지 알 수 없다.
lib 디렉토리/m libcairo-2.dll 찾을 수 없습니다. 예를 들어 같은 폴더에 놓으십시오. 여기서 exe. '연결 되었기 때문에 그것을 찾을 수 있을까요? '- 물론 아니오 – RbMm
좋아요,이 사실은이 특정 DLL에 대한 오류를 해결했습니다 - 나는 그저 나머지를 반복 할 것입니다. 더 이상 오류가 발생합니다. 하지만 DLL을 프로젝트의 하위 폴더에 넣을 수 있도록 컴파일러를 전달해야하는 이유는 무엇입니까? – Bananicorn
@RbMm 이제 모든 필요한 dll이 exe와 같은 디렉토리에 있습니다 - 당신이 대답 할 수 있도록 내 의견을 게시 할 수 있습니까? – Bananicorn