삽질 기록

tool/VS10 2013. 8. 19. 22:23

릴리즈 모드에서 다음과 같은 경고 발생 시 

/GL로 컴파일한 MSIL .netmodule 또는 모듈이 있습니다. /LTCG를 지정하여 링크를 다시 시작하십시오. /LTCG를 링크 명령줄에 추가하면 링커 성능이 향상됩니다.

프로젝트 속성 -> 구성 속성 -> 일반 -> 전체 프로그램 최적화: 링크 타임 코드 생성 사용 선택



라이브러리 디렉터리 설정방식이 두가지이다.

1. 구성속성 -> VC++ 디렉터리 -> 라이브러리 디렉터리

2. 링커 -> 일반 -> 추가 라이브러리 디렉터리(/LIBPATH)

솔루션안에 정적라이브러리 프로젝트와 EXE프로젝트가 같이 있을 때

EXE프로젝트들은 2번에 추가로 경로를 명시해주지 않으니 라이브러리 파일들을 찾지 못하는 현상이 발생



정적 라이브러리 쪽의 클래스: class __declspec(dllexport) A{...

응용프로그램 쪽의 클래스: class __declspec(dllimport) A{...

릴리즈모드에서 컴파일 시 error LNK2001: "__declspec(dllimport) public: __thiscall...  발생하여

두 프로젝트 모두 속성 -> 일반 -> 전체 프로그램 최적화: 전체 프로그램 최적화 안 함

으로 설정하니 오류 안남



프로젝트의 필터정보는 *.vcxproj.filters에 저장. 그냥  프로젝트파일(*.vcxproj)만 복사하면 필터정보가 누락되어 트리에서 헤더와 소스파일이 구분없이 통으로 나열됨.

디버그 설정 정보(실행인자 등)는 *.vcxproj.user에 저장. 이 파일은 SVN에서 관리되지 않음.


디버그 정보가 없는 것처럼 개체를 링크합니다. 경고 발생시

1. "구성 속성" -> "C/C++" -> "일반" -> "디버그 정보 형식" : "프로그램 데이터베이스(/Zi)"

2. "구성 속성" -> "C/C++" -> "코드 생성" -> "최소 다시 빌드 가능" : "아니요(/Gm-)"

3. "구성 속성" -> "C/C++" -> "명령줄" -> "추가 옵션"에 "/Ylsymbol"를 입력
4. "구성 속성" -> "C/C++" -> "일반" -> "전체 프로그램 최적화": "아니요"


블로그 이미지

란마12

,