2010-07-26 2 views
3

짧은 버전 디버그 - 실행 및 외부 릴리스-DLL에 대한 사용 외부 디버그 - DLL이 : 릴리스 모드에서 VS2008에서 프로그램을 실행, 내가 원하는 경우pathA\externaldll.dll를 사용합니다. 디버그 모드에서 VS2008에서 프로그램을 실행하면, 나는 그것이 pathB\externaldll.dll비주얼 스튜디오 2008 : 릴리스-실행

롱 버전을 사용하려면 : 내가 외부 DLL-파일 (VTK)에 링크되어있는 programm에 있습니다. 디버그 및 릴리스 모드에서 외부 응용 프로그램을 직접 빌드했습니다. 외부 dll 파일은 다음과 같이 위치합니다.

<some path>\Debug\externalDll.dll 
<some path>\Release\externalDll.dll 

(그래서 그들은 동일하지만 다른 폴더를가집니다).

디버그 빌드를위한 외부 코드로 들어가고 싶지만 릴리스 빌드를 사용하여 실행 시간을 테스트하기 위해 릴리스 DLL을 사용하고 싶습니다 (큰 데이터 세트를 처리합니다).

해당 프로젝트 설정이 있으므로 해당 DLL에 연결하는 것은 쉽습니다. 그러나 실행시 Visual Studio는 PATH 환경 변수에서 찾은 첫 번째 dll을 사용합니다.

성가신 용액 아이디어 : 같은 PATH 변수를 갖는, % CURRENTDLLPATH %의 PATH = 단계; 및 빌드 후 단계에서 CURRENTDLLPATH를 설정하십시오. VS2008에 내장 된 솔루션이 있습니까?

답변

1

사실 내장하고 쉬운 방법이있다.

그래서 트릭을 수행 exectued 할 프로젝트에 대한

PATH=C:\Paraview\ParaView-3.8.0\gen\bin\$(ConfigurationName);%PATH% 

에 환경 변수 설정.

문제는 여기에 여러 번 대답했다, 난 그냥 찾지 못했습니다 그 (예 How do I set a path in visual studio?)

0

디버그 및 릴리스의 외부 DLL에 다른 파일 이름을 지정하고 두 디렉터리를 PATH에 추가하지 않는 이유는 무엇입니까?

+0

때문에에 lib 디렉토리 - 파일 지점으로 (트릭을 할 수 없습니다 결과 DLL-파일 이름 바꾸기 오래된 파일 이름)과 외부 응용 프로그램은 내가 익숙하지 않은 (Cmake) 빌드 시스템을 사용한다. 외부의 빌드 시스템에 깊이 파고 들어서 구성에 따라 모든 외부 DLL 빌드 타겟을 찾고 이름을 바꿔야했습니다. – B3ret

0

빌드 단계를 추가하여 올바른 DLL을 PATH의 폴더에 복사하고 디버그 및 릴리스 모드에서 다른 빌드 단계를 만들 수 있습니다.

0

디버그 빌드 출력 파일은 ./debug 폴더로 가고 릴리즈 출력 파일은 ./release 폴더로 이동해야합니다.

외부 DLL 파일을이 출력 폴더에 복사해야합니다. 빌드 전 단계를 사용하고 VS 매크로 $(ConfigurationName)을 사용하여 디버그/릴리스를 참조하십시오. "프로젝트 설정"/ 디버깅 내 - 가변

은 "환경"

관련 문제