2013-10-25 6 views
2

끝내고있는 MY_LIB.so 파일에서 lib_share.so 파일을 빌드하려고합니다. MY_LIB.so 파일이 my_path에 있습니다. 내가 실행하면 -lMY_LIB-lMY_LIB를 검색 할 때 호환되지 않는 lib_share.so를 생략하면 -lMY_LIB를 찾을 수 없습니다.

/home/../../bin/ld: cannot find -lMY_LIB 

PS를 검색 할 때

bin/ld: skipping incompatible /home/folder/lMY_LIB.so 

을 휴한지로

g++ -shared -o lib_share.so -L/my_path -lMYLIB 

것은, 그것은 나에게 오류를주고있다 : MY_LIB.so는 소프트 링크

때 main .so 파일로 이동하여 main.so에서 MY_LIB를 검색하면 다음과 같이 표시됩니다.

objdump -p MY_LIB.so.1.0.1 | grep 
MY_LIB.so.1.0.1:  file format **elf32-big** 
    SONAME    MY_LIB.so.1 

라이브러리의 파일 형식은 32 비트 내가 가 (g ++ -shared -o lib_share.so -L/my_path -lMYLIB)

어느 한 도움 이해 할 수 컴파일 64 비트 컴퓨터를 사용하고 있습니다 왜 MY_LIB가 실제로 디렉토리에 존재하더라도 (g ++ -shared -o lib_share.so -L/my_path -lMYLIB) 컴파일 할 수없는 이유는 무엇입니까?

Google 검색에 따르면 라이브러리는 32 비트이므로 64 비트 컴퓨터를 사용하여 프로그램을 컴파일하고 있습니다.

다른 오류 가능성 및이 오류를 해결하는 방법을 알려줄 수 있습니까?

답변

1

g++-m32 플래그를 사용하여 전체 프로그램을 32 비트로 컴파일하십시오.