2012-06-15 2 views
0

64 비트 Windows 운영 체제가 있고 VS2008을 사용하여 프로그램을 작성합니다. bin 디렉토리에 3 개의 컴파일러가 있음을 알았습니다 : amd64, x86_amd64 그리고 bin 디렉토리에 하나 있습니다 (적어도 필자는 생각합니다!). SCONS를 사용하여 프로그램을 컴파일하고 scott에서 --tree=all을 사용할 때 amd64 컴파일러를 사용하는 것을 볼 수 있습니다. Intel i5 프로세서가 있고 SCONS에서 사용할 컴파일러를 지정하지 않았습니다. 이유는 무엇입니까 amd64을 사용하고 있습니까?VS 2008 컴파일러 및 SCONS 관련

당신이 32 비트 컴퓨터에서 64 비트 프로그램을 컴파일하려고 할 때 x86_amd64이 사용 된 것으로 알고 있는데, 그렇다면 CPU와 상관없이 64 비트 프로그램에서도 amd64가 사용됩니까? bin 디렉토리에있는 cl.exe의 목적은 무엇입니까?, 누군가 나에게 이것을 설명 할 수 있습니까?

또한 어떤 컴파일러가 VS2008에서 사용되고 있는지 확인할 수있는 방법이 있습니까? 나는 어떤 정보도 찾을 수 없다. 빌드 로그에.

답변

1

cl.exe는 컴파일러와 링커를 제어합니다. :) 여기보고 learneth :

http://msdn.microsoft.com/en-us/library/9s7c9wdw%28v=vs.80%29.aspx

나는 그것의 약 2K5 대하지만 여전히 관련 알고있다.

내가 말했던 것에서 당신이 진술 한 그 밖의 모든 것이 정확했다.

나는 VS의 속성 내에서 cl에 대한 명령 줄 옵션을 볼 수 있다고 생각합니다. 거기에서 나는 당신이 실제 커맨드 라인에서 그 커맨드를 실행하면 후속 커맨드가 컴파일러와 링커에 발행되는 것을 볼 수 있다고 믿습니다. 그 시점에서 당신은 어떤 컴파일러가 사용되었는지 볼 수 있습니다.

1

SCons에서 사용하는 C++ 컴파일러를 변경해야하는 경우 here과 같이 CXX 구성 변수를 수정할 수 있습니다. 이러한 리눅스 경로, 당신은 삽입 경로를 포맷해야합니다

env.Replace(CXX = '/app/gcc/4.3.4/bin/c++') 
env.Replace(CPP = '/app/gcc/4.3.4/bin/c++') 
env.Replace(CC = '/app/gcc/4.3.4/bin/gcc') 
env.Replace(LINK = '/app/gcc/4.3.4/bin/c++') 

공지 사항 : 여기

내가 내 프로젝트 중 하나에 그것을 할 방법의 예 (임 ++은 C를 사용하는 가정) Windows 용. 당신이 볼 수 있도록, "\ DIR1 \ 하위 디렉터리 C"이이 같은 파이썬 os.path.join() 함수로 쉽게 이식 할 수 있습니다이 경우

import os 
thePath = os.path.join('c:', 'dir1', 'subdir') 

, thePath는해야한다 , 앞으로 또는 뒤로 슬래시에 대해 걱정할 필요가 없습니다.