본문 바로가기

공부/프로그래밍

[Boost] windows10에서 빌드 및 cmake 프로젝트 설정

아래 두 글을 참고했는데 에러가 나서 ㅡㅡ;;

수정한 부분만 추가함,,

 

boost 1_75 설치, : 네이버 블로그 (naver.com)

 

boost 1_75 설치,

방법 1. bootstrap.bathttps://wendys.tistory.com/115이 방법으로 설치 하면 폴더 하나에 정리됨. b2에서 ...

blog.naver.com

[C/C++] 윈도우10 Boost 최신버전 설치 및 사용법 (tistory.com)

 

[C/C++] 윈도우10 Boost 최신버전 설치 및 사용법

Boost Library Download and Build C++ 필수 라이브러리 중 Boost Library에 대해 설치 및 사용법을 정리합니다. Boost는 공식 홈페이지에서 다운로드 가능하며, 주기적으로 업데이트가 되고 있습니다. https://ww..

wendys.tistory.com

크게 세가지 인데,,

 

1.  그냥 cmd나 powershell에서는 msvc를 못찾음,,

찾게 해주는 방법이 있겠지만 귀찮으니 패스하고,,

x64 Native Tools Command Prompt for VS 2019를 관리자 권한으로 열어서 빌드 명령어를 입력함.

Developer PowerShell for VS 2019로 해도 상관없음.

 

2. --toolset=msvc-14.21 --> 14.2

빌드후 생성되는 lib, dll의 이름에 msvc 버전번호가 들어감(예: vc1421). 그런데 애플리케이션 코드를 빌드해 보면 vc142가 포함된 lib를 못 찾는다고 링크에러가 뜸. 또 bootstrap.bat 실행시 toolset을 vs142로 인식함. 그래서 14.2로 수정함.

 

3. stagedir=./stage\lib64에서 에러남,,

빌드후 생성되는 lib, dll이 복사되는 폴더임. 디폴트로 .\stage\lib이기 때문에 생략함. 32bit는 빌드 안할꺼라서,, ㅋㅋㅋ

 

 

최종 빌드 명령은,,

b2.exe -j8 -a --toolset=msvc-14.2 variant=debug,release link=static,shared threading=multi address-model=64

j: 사용할 cpu 코어 설정

a: 전체 리빌드

toolset: 빌드에 사용할 툴셋

variant: 빌드 타입

link: 라이브러리 타입

threading: sigle 혹은 multi 쓰레딩 바이너리

address-model: help에는 안나오는데 타겟 아키텍처인듯,,

 

 

빌드가 진행되고 마지막에 아래 메시지가 뜨면 성공,,

The Boost C++ Libraries were successfully built!
The following directory should be added to compiler include paths:
[설치경로]\boost_1_75_0
The following directory should be added to linker library paths:
[설치경로]\boost_1_75_0\stage\lib

 

============================================================================

 

cmake 프로젝트를 구성해서 Boost를 활용하려면 CMakeList.txt에 다음 변수들을 설정하면 됨.

set (Boost_ROOT "[설치경로]")
set (Boost_LIBRARY_DIR "[설치경로]/stage/lib")
set (Boost_INCLUDE_DIR ${Boost_ROOT})
include_directories(${Boost_INCLUDE_DIR})
link_directories(${Boost_LIBRARY_DIR})
target_link_libraries(${PROJECT_NAME} ${Boost_LIBRARIES})

stackoverflow.com/questions/20969280/find-package-doesnt-detect-boost-on-windows-cmake

 

find_package() doesn't detect boost on Windows Cmake

I'm using a windows system. I want to use the Boost library using CMake. I've installed boost on C:\boost_1_55_0\ Here is my CMakeLists.txt file set(Boost_USE_STATIC_LIBS ON) set(

stackoverflow.com

요거 보고 하긴 했는디,,

시스템변수 설정하는 것만으로는 링크가 안되는지 링크에러가 발생함.

왜 그런지는 차차 업데이트 하기로 하고,,,

아무튼 여기까지 하면 Boost를 사용할 수 있음.