나는 귀찮게 들리 겠지만 나는 그것을 해결하기 위해 모든 노력을 다했음을 느낀다. 나는 생각이 없다.두통을 동반 한 공유 부스트 라이브러리에 연결
나는이 문장을 포함하여 부스트/program_options.hpp를 사용하여 내가 쓴 프로그램이
#include <boost/program_options.hpp>
이 프로그램은 내 컴퓨터에서 작동하며 지금은 내가하지 않는 서버에 넣어 위해 노력하고 있어요 sudo 권한이 있어야합니다. 내 랩탑에서, 모든 것이 작동하는 곳에서는 1.56과 1.58을 부스트했고, 서버에서 1.53.0을 찾았습니다. 나는 이것을 설치하거나 구축하지 않았다.
서버에있는 공유 라이브러리 파일은 다음과 같습니다 저에 LDD를 실행 /usr/lib64/libboost_program_options.so.1.53.0
나에게 출력을 제공합니다
ldd /usr/lib64/libboost_program_options.so.1.53.0
linux-vdso.so.1 => (0x00007ffc54a63000)
libstdc++.so.6 => /lib64/libstdc++.so.6 (0x00007fc0dcad8000)
libm.so.6 => /lib64/libm.so.6 (0x00007fc0dc7d5000)
libgcc_s.so.1 => /lib64/libgcc_s.so.1 (0x00007fc0dc5bf000)
libc.so.6 => /lib64/libc.so.6 (0x00007fc0dc1fe000)
/lib64/ld-linux-x86-64.so.2 (0x00007fc0dd071000)
을 어느 I 가정은 모든 의존성을 찾았 음을 의미합니다.
libboost_program_options.so 링크를 만들기 위해 홈 디렉토리에 심볼릭 링크를 만들었습니다.이 링크는 -lboost_program_options 링커 플래그가 작동해야 함을 의미합니다.
내가 컴파일 방법은 것입니다 :
g++ -L/home/homeDir code.cpp -o code.o -std=c++11 -Wall -lboost_program_options
내가 가진 전부입니다 :
fatal error: boost/program_options.hpp: No such file or directory
#include "boost/program_options.hpp"
^
compilation terminated.
내가 시세 및 <>와 함께이 시도했습니다, 그리고없이 "부스트 /"등, 그러나 나는 항상 같은 불평을 받는다. -lboost_program_options 플래그에 대한 불만이 없으므로 이것이 라이브러리를 찾았다 고 가정합니다.
내 컴퓨터에서 작동하지만 공유 프로그램 옵션 라이브러리를 전혀 사용하지 않았을 수 있습니다. 내 랩탑에서는 라이브러리 경로에 정적 버전의 libboost_program_options가 있고 라이브러리 경로에 포함될 program_options.hpp 헤더가 있습니다. 나는 서버에있는 공유 라이브러리를 사용할 수 있어야하고 서버 관리자를 5 번이나 괴롭히지 않아야한다고 생각한다.
이것이 내 감독 인 경우 유감입니다. 나는 상당히 새로운 일이지만, 지금 당장이 문제를 해결하기 위해 모든 노력을 기울였습니다.
내가 어떻게 바꿀 수 있는지에 대한 제안이 있으면 좋겠어. 아니면 공유 라이브러리를 사용하는 것만으로도 바보가된다.
미리 감사드립니다.
편집 : 더 많은 연구를 한 후 정적 라이브러리와 공유 라이브러리를 혼동스럽게 생각합니다. 나는 컴파일 타임에 공유 라이브러리를 링크하려고하는데, 그건 맞지 않을 것 같다. 컴파일시 링크해서는 안되는 헤더 파일을 포함하는 것도 의미가 없습니다. 내 코드는 정적 라이브러리를 위해 명확하게 설계되었습니다.
'g ++ -I/usr/include -L/usr/lib64 -lboost_program_options -std = C++ 11 ...' –
서버에'program_options.hpp'가 없을 수도 있습니다. boost_program_options _ ** devel **과 같은 패키지 이름. – Mine
예, 그게 내 문제입니다. 나는 그것 없이는 얻을 수있을 거라 생각했지만, 그럴 것 같지 않습니다. 이제 랩톱에서 프로그램 옵션의 정적 버전에 연결 한 다음 서버에서 실행 파일을 사용하고 있습니다. 그것은 지금까지 일하고있다. 그러나 나는 이것을 서버에서도 컴파일 할 수 있어야한다고 생각한다. 나는 지금 헤더 파일을 다운로드했고 libboost_program_options.so를 찾을 수 없다고 결정했는데, 나는 같은 디렉토리에 심볼릭 링크를 만들었지 만 ... fun ^^ – LuckyM