2015-01-07 9 views
1

libmonoboehm-2.0.so.1을 컴파일하는 동안 오류가 발생했지만, 내가 이것을 실행하면 :모노 샘플을 내장 : 오류가 공유 라이브러리를로드하는 동안 : <a href="https://github.com/mono/mono/blob/master/samples/embed/teste.c" rel="nofollow">https://github.com/mono/mono/blob/master/samples/embed/teste.c</a></p> <p>번호 : 난이 샘플을 시도 할 때 내가 & & 소스 에서 설치하게 메이크업을 통해 CentOS는 6 모노를 설치 한

[[email protected]_Test t01]# gcc -o teste teste.c `pkg-config --cflags --libs mono-2` -lm 
[[email protected]_Test t01]# mcs test.cs 
[[email protected]_Test t01]# ./teste test.exe 
./teste: error while loading shared libraries: libmonoboehm-2.0.so.1: cannot open shared object file: No such file or directory 

나는 문제가 무엇인지 알 수 없다. 단서?

+0

해당 패키지가 설치되어 있는지 여부를 확인하고이 라이브러리 경로에있는 경우, 참조 되세요 http://stackoverflow.com/ 질문/10963498/mono-shared-library-under-linux-location –

+0

make install 후/opt/mono/lib /에 있지만/usr/lib64에는 없지만 시스템에서는 lib64에서만이 파일을 찾습니다. – user2986683

답변

0
  1. 무엇이 있습니까? /usr/local/lib에 무엇이 있습니까? 명령 make 앞에 autogen.sh을 실행하는 동안 --prefix 옵션을 사용하지 않은 경우 라이브러리는 /usr/local/lib에 국한되어야합니다. 이 같은 디렉토리에 뭔가가 나타납니다 : 당신이 /usr/local/lib에 위의 라이브러리를 볼 수 있다면

    [email protected]:/usr/local/lib$ ls -lah libmono-2.0.* 
    lrwxrwxrwx. 1 me me 18 dic 19 00:38 libmono-2.0.a -> libmonoboehm-2.0.a 
    lrwxrwxrwx. 1 me me 19 dic 19 00:38 libmono-2.0.la -> libmonoboehm-2.0.la 
    lrwxrwxrwx. 1 me me 19 dic 19 00:38 libmono-2.0.so -> libmonoboehm-2.0.so 
    lrwxrwxrwx. 1 me me 21 dic 19 00:38 libmono-2.0.so.1 -> libmonoboehm-2.0.so.1 
    lrwxrwxrwx. 1 me me 25 dic 19 00:38 libmono-2.0.so.1.0.0 -> libmonoboehm-2.0.so.1.0.0 
    
  2. 문제가 라이브러리 검색 ld입니다 관련이있다. 이 질문에서 : CentOS /usr/local/lib system wide $LD_LIBRARY_PATH Centos6에는 /usr/local/lib에 대한 기본 구성이 없다고 생각합니다. 그것이 귀하의 경우, 그 질문에 제공된 솔루션을 사용하십시오 (그 중 하나) 귀하의 프로그램이 잘 작동합니다.

귀하의 코멘트에서 편집

당신이 teste 프로그램과 같은 경로에 libmonoboehm-2.0.so.1를 원하는 당신은 다음과 같은 것을 할 수있는 당신의 Centos6에서 무엇을 터치하지 않으려면 :

export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/path/to/teste/binary 
./teste test.exe 

그러나이 명령을 실행할 때 어떤 결과가 나올지 궁금합니다. pkg-config --cflags --libs mono-2 (이미 Centos6에 모노 설치가있는 것 같습니다)

어쨌든 CentOS6을 수정할 수 있다면 가장 좋은 대답은 CentOS /usr/local/lib system wide $LD_LIBRARY_PATH입니다. 일단 그렇게하면 LD_LIBRARY_PATH 환경 변수를 엉망으로 만들지 않고도 mono 프로그램을 실행할 수 있습니다. 귀하의 경우에는 당신이해야 다음

1. Edit /etc/ld.so.conf 
2. Write this: /opt/mono/lib 
3. Run ldconfig -v as root 
4. Your Centos6 is ready to run your mono programs whenever you wish (even if you restart your Centos6 machine) 

최종 편집

+0

나는 스스로를 컴파일했습니다. 이와 같이
./configure --prefix =/opt/mono make && make install /opt/mono/lib에 있습니다.그러나 libmonoboehm을/usr/lib64에 넣으면 가 작동하지만 거기에 넣고 싶지 않습니다. teste 바이너리와 함께 넣을 수 있습니까? – user2986683

+0

라이브러리가 특별한 경로에 있기 때문에'LD_LIBRARY_PATH' 환경 변수가 필요합니다. 도움이 될 경우를 대비하여 제 EDIT를보십시오. – Gooseman