커맨드 라인에서 cl.exe를 쓰려면
vcvars32.bat로 환경 변수를 지정해야 합니다.
그런데 디렉토리 이름이 호환이 안되므로
vcvars32.bat을 vc.sh이라는 shell script로 바꿉니다.
제 환경에서는 C 드라이브에 VC8입니다.
#!/bin/bash
export DRIVE_DIR='/cygdrive/c'
#@SET VSINSTALLDIR=C:\Program Files\Microsoft Visual Studio 8
export VSINSTALLDIR="${DRIVE_DIR}/Program Files/Microsoft Visual Studio 8"
#@SET VCINSTALLDIR=C:\Program Files\Microsoft Visual Studio 8\VC
export VCINSTALLDIR="$DRIVE_DIR/Program Files/Microsoft Visual Studio 8/VC"
#@SET FrameworkDir=C:\WINDOWS\Microsoft.NET\Framework
export FrameworkDir=$DRIVE_DIR'/WINDOWS/Microsoft.NET/Framework'
#@SET FrameworkVersion=v2.0.50727
export FrameworkVersion=v2.0.50727
#@SET FrameworkSDKDir=C:\Program Files\Microsoft Visual Studio 8\SDK\v2.0
export FrameworkSDKDir=$DRIVE_DIR'/Program Files/Microsoft Visual Studio 8/SDK/v2.0'
#@if "%VSINSTALLDIR%"=="" goto error_no_VSINSTALLDIR
#@if "%VCINSTALLDIR%"=="" goto error_no_VCINSTALLDIR
#@echo Setting environment for using Microsoft Visual Studio 2005 x86 tools.
echo Setting environment for using Microsoft Visual Studio 2005 x86 tools.
#@rem
#@rem Root of Visual Studio IDE installed files.
#@rem
#@set DevEnvDir=C:\Program Files\Microsoft Visual Studio 8\Common7\IDE
export DevEnvDir=$DRIVE_DIR'/Program Files/Microsoft Visual Studio 8/Common7/IDE'
#@set PATH=C:\Program Files\Microsoft Visual Studio 8\Common7\IDE;C:\Program Files\Microsoft Visual Studio 8\VC\BIN;C:\Program Files\Microsoft Visual Studio 8\Common7\Tools;C:\Program Files\Microsoft Visual Studio 8\Common7\Tools\bin;C:\Program Files\Microsoft Visual Studio 8\VC\PlatformSDK\bin;C:\Program Files\Microsoft Visual Studio 8\SDK\v2.0\bin;C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727;C:\Program Files\Microsoft Visual Studio 8\VC\VCPackages;%PATH%
export PATH="$DRIVE_DIR/Program Files/Microsoft Visual Studio 8/Common7/IDE:$DRIVE_DIR/Program Files/Microsoft Visual Studio 8/VC/BIN:$DRIVE_DIR/Program Files/Microsoft Visual Studio 8/Common7/Tools:$DRIVE_DIR/Program Files/Microsoft Visual Studio 8/Common7/Tools/bin:$DRIVE_DIR/Program Files/Microsoft Visual Studio 8/VC/PlatformSDK/bin:$DRIVE_DIR/Program Files/Microsoft Visual Studio 8/SDK/v2.0/bin:$DRIVE_DIR/WINDOWS/Microsoft.NET/Framework/v2.0.50727:$DRIVE_DIR/Program Files/Microsoft Visual Studio 8/VC/VCPackages:$PATH"
#@set INCLUDE=C:\Program Files\Microsoft Visual Studio 8\VC\ATLMFC\INCLUDE;C:\Program Files\Microsoft Visual Studio 8\VC\INCLUDE;C:\Program Files\Microsoft Visual Studio 8\VC\PlatformSDK\include;C:\Program Files\Microsoft Visual Studio 8\SDK\v2.0\include;%INCLUDE%
export INCLUDE="C:/usr/src/libiberty/include;$INCLUDE"
export INCLUDE="C:/Program Files/Microsoft Visual Studio 8/VC/ATLMFC/INCLUDE;C:/Program Files/Microsoft Visual Studio 8/VC/INCLUDE;C:/Program Files/Microsoft Visual Studio 8/VC/PlatformSDK/include;C:/Program Files/Microsoft Visual Studio 8/SDK/v2.0/include;$INCLUDE"
#@set LIB=C:\Program Files\Microsoft Visual Studio 8\VC\ATLMFC\LIB;C:\Program Files\Microsoft Visual Studio 8\VC\LIB;C:\Program Files\Microsoft Visual Studio 8\VC\PlatformSDK\lib;C:\Program Files\Microsoft Visual Studio 8\SDK\v2.0\lib;%LIB%
export LIB="C:/usr/src/libiberty/libiberty/vc71/Release;$LIB"
export LIB="C:/Program Files/Microsoft Visual Studio 8/VC/ATLMFC/LIB;C:/Program Files/Microsoft Visual Studio 8/VC/LIB;C:/Program Files/Microsoft Visual Studio 8/VC/PlatformSDK/lib;C:/Program Files/Microsoft Visual Studio 8/SDK/v2.0/lib;$LIB"
#@set LIBPATH=C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727;C:\Program Files\Microsoft Visual Studio 8\VC\ATLMFC\LIB
export LIBPATH="C:/WINDOWS/Microsoft.NET/Framework/v2.0.50727;C:/Program Files/Microsoft Visual Studio 8/VC/ATLMFC/LIB"
#@goto end
#
#:error_no_VSINSTALLDIR
#@echo ERROR: VSINSTALLDIR variable is not set.
#@goto end
#
#:error_no_VCINSTALLDIR
#@echo ERROR: VCINSTALLDIR variable is not set.
#@goto end
#
#:end
export CC=cl.exe
적당한 실행 패쓰에 넣고
$ source `which vc.sh`
해주시면 됩니다.
___________________________________
Less is More (Robert Browning)
___________________________________
Less is More (Robert Browning)
질문 내용은 아마도, 컴파일러는 vc 컴파일러고, make 유틸은 cygwin 에 있는 것을 사용했다는 얘기 같네요... ( 얼핏 vc 와 cygwin 컴파일러를 링크하는 것인 줄 알았는데 그건 아닌것 같구요. )
(1) 우선 비주얼 스튜디오 설치 디렉토리 vcvars32.bat 을 찾습니다.
(2) 윈도 명령창(cmd.exe)을 실행한 뒤, 위의 vcvars32.bat 을 실행합니다.
cl 이라고 쳐봅니다. link 라고도 쳐 봅니다. 잘 되면 컴파일러를 쓸 수 있게 된겁니다.
(3) cygwin 설치 디렉토리의 bash 를 위에서 실행한 cmd 창에서 실행합니다. 이렇게 하면 vcvars32.bat 이 설정한 환경 변수가 그대로 유지되면서 bash 가 실행됩니다.
(4) cygwin 명령들을 사용해 봅니다.
(5) 위 과정을 하나의 배치파일로 만들고, 필요할 때 그 배치파일을 이용합니다.
참고로 vc 컴파일러를 사용하는데 필요한 주요 환경 변수는
PATH : 명령들이 들어있는 bin 경로를 추가
INCLUDE : 인클루드 경로
LIB : 라이브러리 경로
cl : cl 컴파일러 옵션 설정
link : linker 옵션 설정
아마두
cl.exe이 visual c++ 컴파일러인 것으로 기억하는데, 굳이 vc++를 놔두고 cygwin으로 해야할 이유가 무엇인가요?
만약 내부적인 구현을 cygwin에 구현된 라이브러리로 하고 cl로 컴파일하려면 당연히 안될겁니다. 라이브러리가 다르니까요. 그 반대의 경우도 마찬가지구요.
그저 컴파일만 할 목적이라면 cygwin을 쓸 필요는 없을것 같습니다만, 만약 쉘스크립트 등을 활용하는 문제라면 그냥 적절한 path를 지정하거나, cmd.exe를 쉘 부르듯이 사용해서 VC++에 정의된 배치파일을 사용하면 쉽게 컴파일 가능할 겁니다.
환경이 갖춰지지 않은 관계로 이정도 답변밖에는 못드리겠군요.
------------------------------
How many legs does a dog have?
------------------------------
How many legs does a dog have?
아..저도 안되는줄 알았는데...
안되는줄 알았는데.
make로 cl컴파일을 돌려서 소스를 주는 바람에....net 2005로 했더군요..
전 2003밖에 없어서 make파일을 수정해야하는데... 일단 cl부터 안먹혀서... 도저히 손을 못 쓰겠네요.
이렇게 돌려서 사용해 본신 분은 없나요?
왜 cygwin에서 cl로
왜 cygwin에서 cl로 컴파일해야 하나요?
이 문제를 푸는게 더 도움이 될듯한데요.
만들어진거라...
첨 했던 사람이 cygwin에서 cl로 해서 다시 윈도우로 옮길려고 하니깐.. 파일이 여러개 링크 된것이 많고
make파일 너무 많아서 그걸 다 분석하고 새로운 워크스페이션 만들바야 차라리 cygwin에서 하는 것이 더 빠를거 같아서요.
커맨드 라인에서
커맨드 라인에서 cl.exe를 쓰려면
vcvars32.bat로 환경 변수를 지정해야 합니다.
그런데 디렉토리 이름이 호환이 안되므로
vcvars32.bat을 vc.sh이라는 shell script로 바꿉니다.
제 환경에서는 C 드라이브에 VC8입니다.
적당한 실행 패쓰에 넣고
$ source `which vc.sh`
해주시면 됩니다.
___________________________________
Less is More (Robert Browning)
___________________________________
Less is More (Robert Browning)
정말 감사합니다..
됩니다.. ^^
완벽하게 되진 않지만, 일단 컴파일은 되네요.. 이제 링크 문제~~~ ^^ 감사합니다.
그런데
저기서 export에 뭔가 잘못되어있는지....
거기서 계속 에러가 나서 export에 있는 부분은 그냥 노가다로 다 적으니깐 되네요~
다시 한번 더 감사합니다.
vc.sh은 전에 libiberty를
vc.sh은 전에 libiberty를 포팅하려다가 만들었던 것인데
다시 보니까 잘 못된 부분도 있네요.
vim 가지고 이것 저것 바꾸느라 성가셨는데
채쓰맨님의 해법을 보니까 존경스럽군요.
cmd에서 vcvar32.bat 실행
cd \cygwin\bin
bash -l
하시면 됩니다.
질문 내용은 아마도,
질문 내용은 아마도, 컴파일러는 vc 컴파일러고, make 유틸은 cygwin 에 있는 것을 사용했다는 얘기 같네요... ( 얼핏 vc 와 cygwin 컴파일러를 링크하는 것인 줄 알았는데 그건 아닌것 같구요. )
(1) 우선 비주얼 스튜디오 설치 디렉토리 vcvars32.bat 을 찾습니다.
(2) 윈도 명령창(cmd.exe)을 실행한 뒤, 위의 vcvars32.bat 을 실행합니다.
cl 이라고 쳐봅니다. link 라고도 쳐 봅니다. 잘 되면 컴파일러를 쓸 수 있게 된겁니다.
(3) cygwin 설치 디렉토리의 bash 를 위에서 실행한 cmd 창에서 실행합니다. 이렇게 하면 vcvars32.bat 이 설정한 환경 변수가 그대로 유지되면서 bash 가 실행됩니다.
(4) cygwin 명령들을 사용해 봅니다.
(5) 위 과정을 하나의 배치파일로 만들고, 필요할 때 그 배치파일을 이용합니다.
참고로 vc 컴파일러를 사용하는데 필요한 주요 환경 변수는
PATH : 명령들이 들어있는 bin 경로를 추가
INCLUDE : 인클루드 경로
LIB : 라이브러리 경로
cl : cl 컴파일러 옵션 설정
link : linker 옵션 설정
처음 세개만 설정하면 vc 컴파일러를 쓸 수 있습니다.
Orion Project : http://orionids.org
비슷하게 되어가고 있는거 같습니다.
방금 적어주신 걸로 해 보았는데...
cl 명령어가 먹히네요..감사합니다... 그런데 다른 명령어가 하나도 되질 않네요...-0-;;
ls 라든지 make라든지... 전혀 되질 않네요.. 이건 어떻게 해야합니까?
그게 안되는건 cygwin
그게 안되는건 cygwin bin 경로가 PATH 에 잡혀 있지 않기 때문입니다.
bash 실행전에
set PATH=%PATH%;cygwin_bin_path
를 추가하세요.
cygwin_bin_path 는 도스 경로로 입력하면 됩니다. bash 실행전에
gcc, make 등이 먹는지 확인하시고, 그 다음 bash 를 실행하세요.
Orion Project : http://orionids.org
정말 감사합니다.
와우... 이틀동안 삽질한 부분인데...첨부터 여기에 물어봤다면..하는 생각이 드네요..
감사합니다... ^^
댓글 달기