2010-07-27 6 views
2

저는 소프트웨어 회사에서 일하는 전문 직업입니다. 제 과거의 회사에서 기본적으로 저는 C에서 & C++로 작업하고있었습니다. unix.Now에서 갑자기 C++로 바뀌 었습니다. 완전히 다른 world.Basically 나는 완전히 C++로 작성된 매우 큰 응용 프로그램에서 일하고 있습니다. 간단하게 유지하려면, 나는 소스 코드가 있습니다. 나는 응용 프로그램 및 다른 여러 종속 파일의 exe 있습니다. 그것은입니다 GUI 응용 프로그램 (여러 창, 보고서, 그래프 및 거대한 수학적 계산이 응용 프로그램에 의해 수행됩니다.) 이제 마침내 일부 헤더, 일부 vcproj 파일, 일부 dsw 파일 및 다른 여러 가지 포함하는 응용 프로그램의 소스 코드가 있습니다. 도대체 그들이 왜 존재하는지 이해하십시오. 이제 C++ 프로그래머로서 저의 책임은 클라이언트가 복제를 식별하고 수정하는 모든 버그를 만드는 것입니다.Windows에서 유닉스에서 Visual Studio 로의 C++ 전환

유닉스의 버그는 바이너리와 소스 코드를 사용하고 gdb/dbx를 실행하여 일부 또는 다른 방법으로 printf 문을 추가하는 것과 같은 문제를 찾아 낼 수 있습니다.

하지만 내가 위에서 언급 한 파일을 제공합니다. 비주얼 스튜디오에서 VC++에서 응용 프로그램을 디버깅 할 수 있습니다. C++ 프로그래머가 Unix에서 Windows로 전환하는 것은 매우 어렵습니다. 내가 이런 일들을 신속하게 파악할 수있는 좋은 변화의 자원이라면?

답변

0

(BTW 내가 VS 2005 사용하고 있습니다) 디버그 정보와 F5 키를 눌러로 코드를 컴파일 - exe 인 내가 ++ VS C에서 응용 프로그램을 실행하여 프로그램을 디버깅을 시작하는 방법을 응용 프로그램의 소스 코드를 제공

(디버깅 시작). 나는 문제가 어디 있는지 보지 못한다. 리눅스에서도 마찬가지입니다.

+0

내가 말하려고하는 요점을 얻지 못한 것 같습니다. – Vijay

1

당신의 고통을 이해합니다. 나는 몇 달 전에 같은 길을 택했다.

아마 알았 겠지만 Visual Studio는 gcc/g ++의 정확한 대안이 아닙니다. 텍스트 편집기, 디버거 등을 포함합니다.

일반적으로 두 개의 편집 "모드", 디버그릴리스 있습니다. ..., 중단 점을 추가, 단계별로,

를 사용하는 단계를 모두 최적화는 사용할 수 없습니다

디버그 모드에서 (자신을 추가 할 수 있습니다) 및 디버거에서 프로그램을 실행할 수 있습니다 그냥 시작 F5 키를 사용하십시오. 추가 파일에

더 노트 (소스 파일, 헤더, 자원, ...) 같은 프로젝트에 속하는 파일의 무리 : 비주얼 스튜디오 세계에서

, .vcproj 파일은 "프로젝트"를 나타냅니다 .

.dsw (이전의 현재 이름은 .sln입니다.)은 "솔루션"파일입니다 : 내부 의존성을 가질 수있는 하나 또는 여러 개의 프로젝트 그룹. 예 : 동일한 솔루션, 라이브러리 및 그에 의존하는 소프트웨어를 보유 할 수 있습니다. 따라서 전체 솔루션을 컴파일 할 때 올바른 순서로 빌드됩니다.(- Alt 키 - P와 프로세스를 선택 클릭률을) 당신이 .pdb (디버그 정보)가있는 경우 당신이 할 수 있어야 파일 당신이 시도해야

+1

디버그/릴리스 구성간에 직접적인 관계가 없으며 코드를 디버그 할 수 있는지 여부가 있습니다. 릴리스 내장 코드를 디버깅 할 수는 있지만, 최적화가 심한 경우 디버깅이 다소 불안정 할 수 있습니다 (이는 VS가 아닌 보편적 인 진리입니다). 릴리스 빌드는 전체 기호 파일 (.PDB 파일)을 생성하도록 설정되거나 설정되지 않을 수도 있지만 실행 파일의 크기를 크게 변경하지 않고 릴리스 빌드에 대해 활성화 할 수 있습니다. –

1

우선은 실행중인 동안 프로세스에 연결하는 것입니다 다시 빌드하지 않고 프로세스를 디버그하십시오.

그 시도에 실패하면 도구에 옵션 "정확히 원래 버전에 맞게 소스를 필요 파일"를 을 취소합니다 -> 옵션 -> 디버깅.

너무 실패하면 이진 파일이 소스 파일과 일치하도록 응용 프로그램을 다시 빌드해야합니다 (.sln 파일을 열고 빌드를 수행해야합니다).

행운을 빈다.

4

유닉스의 경우 메이크 파일은 Windows에서 찾을 수 없다는 것이 가장 큰 차이점입니다. Visual Studio는 프로젝트 및 솔루션에서 코드를 구성하고 VS가 컴파일해야하는 모든 정보를 포함하는 프로젝트 파일에 &이 링크됩니다.

* .sln 파일이있는 경우 두 번 클릭하여 VS에서 엽니 다. 그런 다음 소스를 빌드하고 (보통 F6 키를 눌러서) 디버그 모드 (일반적으로 F5)로 실행하십시오.

세부 정보 : 프로젝트는 '무언가'(보통 LIB, DLL 또는 EXE)가되는 소스 파일의 모음입니다.

솔루션은 프로젝트 모음입니다. 예를 들면 유용합니다. 하나의 프로젝트는 다른 프로젝트에서 사용하는 LIB를 만듭니다. 프로젝트간에 종속성을 설정하면 VS는 올바른 순서로 프로젝트를 빌드합니다. 사용

확장 :

  • * 된 .vcproj : C/C++ 소스
  • 을위한 프로젝트 파일 * .vcproj..user : GUI의 열려있는 창을 포함합니다. 안전하게 삭제할 수 있습니다.

  • *의 .sln : 솔루션 파일

  • * .NCB : 솔루션에 대한 인텔리 데이터베이스. 안전하게 삭제할 수 있습니다.
  • * .suo : GUI에서 열려있는 창을 포함합니다. 안전하게 삭제할 수 있습니다.

  • * .dsw : Visual Studio 6.0 관련 파일 - VS2005에서는 사용되지 않습니다. 디버그에 대한 모든 중간 파일과 폴더 (변경 가능) 빌드

  • ./Release/* :

  • ./Debug/* (*의 .sln IIRC로 대체) 폴더를 모두 로 릴리스 빌드 중간 파일 내가 지금 생각할 수있는 전부

을 (변경 가능).

0

VS2005는 dsw 파일을 sln 파일로 변환 할 수 있지만 원본 VC6 파일을 모두 변환해야 변환이 성공합니다. 디버깅을 위해 다음 msdn 링크를 확인하십시오,이 도움이되기를 바랍니다.

http://msdn.microsoft.com/en-us/library/sc65sadd.aspx C++ 용 하이퍼 링크 "네이티브 코드 디버깅"을 선택하십시오.

3

.SLN 파일이 아닌 .DSW 파일 만있는 경우 프로젝트가 마지막 Visual Studio 버전이 아닌 VC6에서 마지막으로 작업 한 것임을 의미합니다.

VC6 이후 C++ 컴파일러가 많이 변경되어 소스 코드를 약간 변경하지 않고도 프로젝트가 VS2005로 컴파일되지 않을 수 있습니다.

.SLN 파일이 있습니까? 그렇다면 파일 맨 위에있는 버전 번호는 무엇입니까 (텍스트 파일입니까?)? .SLN 파일이 없으면 VC6을 사용할 수 있습니까?

나중에 일치하는 도구를 사용하여 익숙하지 않은 플랫폼에서 계속 최신 버전으로 가져 오려고했습니다.

관련 문제