0

저는 cygwin을 사용하고 cygwin에서 CL 컴파일러를 사용하는 데 새로운 경험이 있습니다. (내 프로젝트 요구 사항 때문입니다.)CL 컴파일러가 cygdrive에서 절대 경로를 선택할 수 없습니다

나는 실제로 cl 컴파일러가 선택한 include 경로와 관련된 문제에 직면하고 있습니다. 우리는 프로젝트를 만들기 위해 makefile을 사용합니다.

메이크 파일은 자동으로 (예 :/cygdrive/m/username/project_name/include /) 의 절대 경로를 가져 와서 CL 컴파일러의/I (포함 옵션)에 인수로 제공합니다.

그러나 Cl 컴파일러는이 경로에서 헤더 파일을 찾을 수 없지만 실제로 헤더 파일은 해당 경로에 있습니다.

반대로, 상대 경로가 (예 :/cygdrive/m/username으로 시작하지 않고 ../src/../project_name/include/)이되도록 makefile을 변경하면 다음과 같이 찾을 수 있습니다. 이 경로의 헤더 파일을 포함하십시오 (절대 경로로 먼저 참조 된 헤더 파일과 같습니다).

/I 옵션에서 절대 경로를 지정했을 때 CL 컴파일러가 헤더 파일을 찾아서 포함 할 수없는 이유가 확실하지 않습니다.

Cygwin에서 사용할 때 Include 경로를 제공하는 다른 옵션이나 다른 방법이 있습니까?

답변

0

메이크 파일에서 'cygpath'를 사용하여 파일 형식을 변환 해보십시오. 특정 예제의 경우 다음 명령을 입력하면됩니다.

INC_DIR=$(shell cygpath -m $/cygdrive/m/username/project_name/include/) 

는 변환 한 후 모든 경로로 메이크 파일의 경로를 포함하면 평소

-I$(INC_DIR) 
관련 문제