gcc는 Cygwin에서 "해당 파일이나 디렉터리가 없습니다"라는 오류를 생성합니다.

gcc는 Cygwin에서 "해당 파일이나 디렉터리가 없습니다"라는 오류를 생성합니다.

데모 목적으로 여기에 한 줄짜리 test.c가 있습니다.

#include <dbus/dbus.h>

이것은 내 빌드 파일입니다.

INC     =   -I/usr/include/dbus-1.0         \
            -I/usr/lib/dbus-1.0/include

test    :   test.c
            gcc $(INC) -c -o test.o test.c

Mer Linux(zypper를 통해) 및 Cygwin(설치 프로그램을 통해)에 dbus devel 패키지를 설치했습니다. dbus/dbus.h는 두 시스템 모두에서 볼 수 있습니다(ls /usr/include/dbus-1.0은 dbus.h 파일이 포함된 dbus 폴더를 표시합니다). 이는 Mer Linux에서 성공적으로 컴파일되지만 Cygwin(Win 7에서 실행되는 2.831 64비트)에서 컴파일할 때 다음 오류가 발생합니다.

test.c:1:23: fatal error: dbus/dbus.h: No such file or directory
 #include <dbus/dbus.h>
                       ^
compilation terminated.
makefile:5: recipe for target 'test' failed
make: *** [test] Error 1

저는 Cygwin을 작동시키기 위해 제가 생각할 수 있는 모든 간단한 변형(I와 경로 사이의 공백, 경로 끝에 추가 슬래시, 다양한 gcc 매개변수 순서)을 시도했습니다. 존재해서는 안 되는 이 문제를 해결할 수 있는 쉬운 방법은 없는 것 같습니다.

돕다!

답변1

스택 오버플로 댓글gcc 또는 make 버전이 unix/Windows 경로 스타일 충돌을 처리하지 않기 때문에 이러한 경우가 발생할 가능성이 논의되었습니다. 비슷한 문제가 발생합니다.다른이 상황은 gcc의 Cygwin 버전이 설치되어 있는지 확인하여 해결됩니다. 그렇지 않으면 다른 것에 의존하게 됩니다.

표준 Cygwin gcc/make가 설치되어 있지 않으면 이로 인해 문제가 발생할 수 있습니다.

관련 정보