1
liblua51.so에 의존하는 공유 라이브러리 (so)에 의존하는 간단한 예제 프로그램을 컴파일하려고합니다. 내 소스 파일 example.c이며, 여기에 내가 (이 C로 작성) 나는 다음과 같은 오류가 점점 오전lua51 c-shared 라이브러리 문제
cc -Wall -fPIC -ldl -o a.out -I./ste-linux/ste-interface-files/c/ -L./ste-linux/ste-shared-libraries/ example.c -lm -llua51 -lste -lm -ldl
컴파일하기 위해 사용하고있는 명령입니다 : 나는을 읽고
./ste-linux/ste-shared-libraries//liblua51.so: undefined reference to `sinh'
./ste-linux/ste-shared-libraries//liblua51.so: undefined reference to `ceil'
./ste-linux/ste-shared-libraries//liblua51.so: undefined reference to `atan2'
./ste-linux/ste-shared-libraries//liblua51.so: undefined reference to `tanh'
./ste-linux/ste-shared-libraries//liblua51.so: undefined reference to `cosh'
./ste-linux/ste-shared-libraries//liblua51.so: undefined reference to `fmod'
./ste-linux/ste-shared-libraries//liblua51.so: undefined reference to `acos'
./ste-linux/ste-shared-libraries//liblua51.so: undefined reference to `sin'
./ste-linux/ste-shared-libraries//liblua51.so: undefined reference to `atan'
./ste-linux/ste-shared-libraries//liblua51.so: undefined reference to `asin'
./ste-linux/ste-shared-libraries//liblua51.so: undefined reference to `exp'
./ste-linux/ste-shared-libraries//liblua51.so: undefined reference to `tan'
./ste-linux/ste-shared-libraries//liblua51.so: undefined reference to `cos'
./ste-linux/ste-shared-libraries//liblua51.so: undefined reference to `log'
./ste-linux/ste-shared-libraries//liblua51.so: undefined reference to `pow'
./ste-linux/ste-shared-libraries//liblua51.so: undefined reference to `log10'
./ste-linux/ste-shared-libraries//liblua51.so: undefined reference to `sqrt'
./ste-linux/ste-shared-libraries//liblua51.so: undefined reference to `floor'
은 stackoverflow에 다른 스레드가 - lm 플래그를 추가하는 것은이 문제를 해결할 것이지만, 명령에 -L 및 -lm -ldld를 어디에 두어도이 정의되지 않은 참조는 사라지지 않을 것입니다.
내가 우분투에 lib 디렉토리를 컴파일하려고 12.04 LTS
도와주세요
'liblua'를 만든 방식에 문제가있는 것 같습니다. 대신 Ubuntu에서 제공하는 버전을 사용해 보시고 문제가 계속 발생하는지 확인해주십시오. – jxh
공유 라이브러리가 필요하기 때문에이 특정 버전에 대해 빌드 된 것이므로이 유형의 문제를 디버깅하는 데 사용할 수있는 도구가 있기 때문에 제가 할 수 있다고 생각하지 않습니까? – josephmisiti
루아만을 사용하는 간단한 프로그램을 작성할 수 있습니다. 버전과 비교하여 컴파일 한 다음 시스템 버전과 비교하여 컴파일하고 동작에 차이가 있는지 확인하십시오. 나중에 공유 라이브러리에 대해 걱정할 필요가 있습니다. 한 번에 한 가지 문제 만 디버깅하십시오. – jxh