boost-thread-mt 라이브러리를 찾을 수 없습니다


8

boost-thread-mt 라이브러리가 필요한 프로그램을 컴파일 중입니다. libboost-all-dev를 사용하여 설치 sudo apt-get install libboost-all-dev했지만 컴파일러는 boost-thread-mt 라이브러리를 찾을 수 없다고 말합니다. 이 라이브러리가 다른 패키지에 있습니까? 설치를 위해 필요한 사항을 알려주십시오.


당신은 한하십니까 libboost-thread-dev설치되어 있습니까?
Cornelius

-mt기본 Boost 패키지 에는 라이브러리 가 없습니다 . 미해결 질문 도 참조하십시오 .
saiarcot895 2016 년

-mt 라이브러리를 어떻게 설치합니까?
Muhammad Omer

답변:


13

-mt접미사가 제거되었다. 설치된 Boost 라이브러리는 멀티 스레딩 안전합니다.

프로그램을 컴파일 할 수 있습니다 libboost-thread. 비 -mtlibs 를 사용하도록 소스를 변경 하거나 심볼릭 링크를 만들어서 libboost_thread.alibboost_thread-mt.a. 공유 라이브러리가 필요한 경우에도 마찬가지 .so입니다.


2
우분투가 지혜롭게 다른 일을하기로 결정했다면 크로스 플랫폼 개발에 대한 조언이 있습니까?
가명

당신이 GNU의 autotools를 사용하는 경우 @Pseudonym는 참조 Autotconf을 :AC_CHECK_LIB
user.dz

1
Autoconf는 특히 Boost.Build를 사용하는 경우 많은 프로젝트에서 과잉입니다.
가명

@Pseudonym, 나는 boost에 익숙하지 않지만 check-target-builds boost.build에 대해 autoconf와 동일한 기능을 제공하는 것 같습니다.
user.dz 5

0

프로젝트에서를 사용하는 경우 FindBoost 모듈에 CMake제공된 다음 스위치 가 꺼져 있어야합니다.-DBoost_USE_MULTITHREADED=OFF


0

링크 는이 질문과 관련이 있습니다.

apt-get 버전을 사용하는 대신 소스에서 향상을 컴파일 할 수도 있습니다.

인수 --layout, threading그리고 build-type의지에 도움이됩니다.

--layout=<layout>     Determines whether to choose library names
                      and header locations such that multiple
                      versions of Boost or multiple compilers can
                      be used on the same system.

                      versioned - Names of boost binaries
                      include the Boost version number, name and
                      version of the compiler and encoded build
                      properties.  Boost headers are installed in a
                      subdirectory of <HDRDIR> whose name contains
                      the Boost version number.

                      tagged -- Names of boost binaries include the
                      encoded build properties such as variant and
                      threading, but do not including compiler name
                      and version, or Boost version. This option is
                      useful if you build several variants of Boost,
                      using the same compiler.

                      system - Binaries names do not include the
                      Boost version number or the name and version
                      number of the compiler.  Boost headers are
                      installed directly into <HDRDIR>.  This option
                      is intended for system integrators who are
                      building distribution packages.

                  The default value is 'versioned' on Windows, and
                  'system' on Unix.

따라서 다음 명령을 사용하여 boost를 설치하십시오 bootstrap.sh --prefix=/path/of/yours.

./b2 install -j16 threading=multi --layout=tagged --build-type=complete

그런 다음 모든 -mt라이브러리를 얻습니다 .

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.