나는 소프트 프로세서 (PowerPC)를 실행하는 자일링스 FPGA를 가지고있다. 나는 최근에 PowerPC 용 Boost 라이브러리를 컴파일하여 테스트 해 보려고했다. 그래서 나는 샘플 프로그램 중 하나를 사용하여 목표를 위해 컴파일을 시도했다. 다음은 코드 아래linux/powerpc에서의 동적 연결 실패
#include <boost/thread/thread.hpp>
void helloworld()
{
printf("Hello World!");
}
int main()
{
boost::thread thrd(&helloworld);
thrd.join();
}
내 메이크 파일
CPP=ppc_4xx-g++
CFLAGS=-c -g -Wall
LDFLAGS_PowerPC=-L/shared/deps/powerpc/lib -L/opt/ELDK/4.2/ppc_4xx/lib/
LIBS_PowerPC=-lboost_thread -lboost_system -lpthread -lrt
INCLUDES=-I. -I./4.2.2/ -I./include -I/opt/ELDK/4.2/ppc_4xx/usr/include/
CPPFLAGS_PowerPC=-I/shared/deps/common/include
CPPFLAGS_COMMON=-I/shared/deps/powerpc/include
CPPFLAGS=$(CPPFLAGS_COMMON) $(CPPFLAGS_PowerPC)
all: helloworld
helloworld: helloworld.o
$(CPP) $(LDFLAGS_PowerPC) $(LIBS_PowerPC) helloworld.o -o helloworld
helloworld.o: helloworld.cpp
$(CPP) $(CFLAGS) $(CPPFLAGS) $(INCLUDES) helloworld.cpp
clean:
rm -rf *.o helloWorld
내가 바이너리를 생성 할 수 있었다하지만 난 내 목표에 프로그램을 실행할 때 나는 아래의 오류를 얻을이다
-/bin/sh: ./helloworld: not found
온라인으로 확인한 결과 동적 링크가있을 때 위의 문제가 발견되었습니다. 내 부스트 라이브러리는 /shared/deps/powerpc/lib 위치에 있으며 아래의 명령을 사용하여 LD_LIBRARY_PATH 변수를 설정했습니다.
export LD_LIBRARY_PATH=/shared/deps/powerpc/lib/:/opt/ELDK/4.2/ppc_4xx/lib/
그래도 동일한 문제가 발생합니다.
다음은 내가 동적 종속성을 확인할 수 없습니다, 그래서 내 목표에 설치 LDD이없는 UNAME -ars
Linux (none) 3.0.0-14.1-build3+ #23 PREEMPT Thu Jan 3 18:44:27 CST 2013 ppc GNU/Linux
의 출력입니다. 그러나 나는 도서관이 포함되어 있다고 확신한다. 어떻게하면됩니까?