programing

Visual Studio 프로젝트에서 상대 경로를 정의하는 방법은 무엇입니까?

projobs 2022. 8. 27. 23:17
반응형

Visual Studio 프로젝트에서 상대 경로를 정의하는 방법은 무엇입니까?

라이브러리와 라이브러리를 사용하는 콘솔 애플리케이션이 있습니다.라이브러리에는 소스 파일과 헤더 파일이 있는 폴더가 있습니다.

내 프로젝트는 하위/내부 디렉토리에 있지만 포함할 라이브러리 디렉토리는 상위/상위 디렉토리에 있습니다.

내 프로젝트 디렉토리:

H:\Gmail_04\gsasl-1.0\lib\libgsaslMain

파일 포함:

H:\Gmail_04\gsasl-1.0\src

프로젝트 디렉토리와 관련된 경로를 사용하여 상위/상위 디렉토리에 있는 폴더를 포함하려면 어떻게 해야 합니까?

이를 위해 상대 경로를 사용하는 대신 VS의 미리 정의된 매크로를 사용할 수도 있습니다.

$(ProjectDir)의 디렉토리를 포인트 합니다..vcproj파일,$(SolutionDir)는 의 디렉토리입니다..sln파일.

프로젝트를 열면 사용 가능한 매크로 목록이 나타납니다.
속성 → 구성 속성 → C/C++ → 일반
3개의 점을 찍습니다.

프로젝트 속성

다음 대화 상자에서 매크로를 눌러 Studio에서 미리 정의된 매크로를 확인합니다(MSDN의 의미에 따라 참조).

추가 디렉토리 포함

매크로를 사용하려면$(MACRO_NAME)(주의:$ 둥근 괄호).

내가 널 맞히면, 넌 필요하겠지..\..\src

이전에 다음과 같은 구문을 사용한 적이 있습니다.

$(ProjectDir)..\headers

또는

..\headers

다른 사람들이 지적한 바와 같이 시작 디렉토리는 프로젝트 파일이 있는 디렉토리입니다.vcproj또는vcxproj), 메인 코드가 있는 위치가 아닙니다.

기본적으로는 정의하는 모든 경로가 상대 경로입니다.문제는 무엇과 관련된가?몇 가지 옵션이 있습니다.

  1. 파일 또는 파일 앞에 아무것도 없는 경로를 지정합니다.예: "mylib.lib"이 경우 출력 디렉토리에서 파일이 검색됩니다.
  2. "..."를 추가할 경우\", 경로는 .sln 파일이 있는 실제 경로에서 계산됩니다.

$(SolutionDir)와 같은 매크로 뒤에 슬래시 "\"를 추가할 필요가 없습니다.$(SolutionDir)mylibdir\mylib.lib을 사용합니다.제대로 작동하지 않을 경우 메모장에서 프로젝트 파일을 열어 확인합니다.

알아야 할 힌트가 몇 가지 있습니다.

어플리케이션이 c:\MyRepository\MyApp에서 실행되고 있다고 가정합니다.

경로에 점이 하나 있으면 앱이 실행되는 폴더를 의미합니다.MyApp 폴더(imagine c:\MyRepository\MyApp\Resources\someText.txt) 아래에 있는 폴더 또는 파일에 액세스하려면 다음과 같이 하십시오.var bla = File.Exists(./Resources/someText.txt)

c:\MyRepository\c에 있는 한 할 수 .\MyRepository\아래에 있는 폴더를 더블 도트로 한 단계 위로 이동할 수 있습니다.일부 폴더\somethext.는 myApp과 .var bla = File.Exists(../SomeFolder/someText.txt)

둘, 셋, 넷으로 갈 수 있어요.같은 레벨업

../../Some Folder (2레벨 이상)

../../../Some Folder (3레벨 이상)

점 없이 시작하는 경로는 드라이브 루트를 의미합니다. var bla = File.Exists(/SomeFolder/someText.txt)§ c:\Some Folder\some에서 텍스트는 ★★★★★★★★★★ 입니다.txt의

언급URL : https://stackoverflow.com/questions/6895457/how-to-define-relative-paths-in-visual-studio-project

반응형