LINK : fatal error LNK1123: COFF로 변환하는 동안 오류가 발생했습니다. 파일이 잘못되었거나 손상되었습니다.
이런 글자가 나올 때 다음과 같이 해결하면 된다
원인 : 두 개 이상 다른 버전의 Visual Studio를 설치했기 때문
cvtres.exe 파일의 중복 존재
해결 방법 :
C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\bin
C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\bin\amd64
위의 두 군데에 cvtres.exe 파일이 존재하는데 첫 번째 경로에 있는 cvtres.exe 파일을 다른 이름으로 변경하던지 삭제한다
도구 - 옵션 - 환경 - 키보드 - Visual C++ 6 로 설정
경로를 저장할 때 텍스트에서 \\를 \로 인식한다
따라서 XML에 저장할 때 \로 저장한다
다시 로딩할 때 \\가 되어 있어야 하는데
\를 읽어들이기 때문에 파싱을 실패하여 로딩이 제대로 되지 않는다
* 해결 방법
- 저장할 때 \\ 를 \\\\로 변경하여 저장한다
함수 포인터는 많이 올라와 있지만
클래스 메서드 포인터를 파라미터로 사용하는 방법은 많이 없어서
내가 자주 사용하기 위해 올린다
클래스 헤더 파일
클래스 소스 파일
실제 사용 파일
boost 파일을 다운 받아 압축을 푼다
bootstrap.bat 파일을 더블 클릭하여 실행하면 b2.exe 가 생성된다
커맨드 창을 띄운 뒤 b2.exe가 있는 경로로 이동한다
b2 명령어를 입력한다
b2 옵션
1. link : static - static 빌드(.lib) shared - dynamic 빌드 (.dll)
2. address-model : 32 - 32 비트 64 - 64 비트
3. variant : debug - debug 빌드 release - release 빌드
4. toolset : msvc-10.0 (VS2010) msvc-14.0 (VS2015)
5. threading : single multi
6. runtime-link : static - MT 빌드 shared - MD 빌드
현재의 프로젝트 속성에 맞추어서 6개의 속성을 옵션으로 추가해 빌드하면 된다
* b2 명령 예제
1. VS2010 32 비트 static debug MT 빌드
b2 --toolset=msvc-10.0 --variant=debug --address-model=32 --link=static --threading=multi --runtime-link=static
결과물 - libboost_chrono-vc100-mt-1_58.lib
2. VS2015 64비트 shared(dll) release MD 빌드
b2 --toolset=msvc-14.0 --variant=release --address-model=64 --link=shared --threading=multi --runtime-link=shared
결과물 - boost_chrono-vc100-mt-1_58.lib