2013-10-22 1 views
0

x86 아키텍처에서 OpenIMSCore를 사용하고 있습니다. power-pc 용 OpenIMS를 컴파일해야합니다. /ser_ims/Makefile.defs 파일에는 ppc에 대한 옵션이 있습니다. 그러나 ppc를 위해 그것을 컴파일하는 방법을 알아낼 수는 없습니다. IMS를 구성하고 ppc로 컴파일 할 수있는 구성 파일이 없습니다. 누구든지 컴파일 된 IMS를 교차 시켰습니까? 나는
IP 멀티미디어 서브 시스템 교차 컴파일

  • 는 CFLAGS = "아치 = PPC를"만들

을 CFLAGS = "아치 = 파워 매킨토시"를 만드는 명령을 통해 컴파일 시도했지만 모두 명령이 작동하지 않습니다. 이 오류 다음주고있다 :

Makefile.defs:598: You are using an old and unsupported gcc version (G++), compile at your own risk! powerpc-linux-gnu-gcc -g -O9 -funroll-loops -Wcast-align -Wall -DNAME='"ser"' -DVERSION='"2.1.0-dev1 OpenIMSCore"' -DARCH='"i386"' -DOS='linux_' -DOS_QUOTED='"linux"' -DCOMPILER='"powerpc-linux-gnu-gcc G++"' -D__CPU_i386 -D__OS_linux -DSER_VER=2001000 -DCFG_DIR='"/usr/local/etc/ser/"' -DPKG_MALLOC -DSHM_MEM -DSHM_MMAP -DDNS_IP_HACK -DUSE_IPV6 -DUSE_MCAST -DUSE_TCP -DDISABLE_NAGLE -DHAVE_RESOLV_RES -DDBG_QM_MALLOC -DUSE_DNS_CACHE -DUSE_DNS_FAILOVER -DUSE_DST_BLACKLIST -ggdb -DUSE_TLS -DTLS_HOOKS -DFAST_LOCK -DADAPTIVE_WAIT -DADAPTIVE_WAIT_LOOPS=1024 -DCC_GCC_LIKE_ASM -DHAVE_GETHOSTBYNAME2 -DHAVE_UNION_SEMUN -DHAVE_SCHED_YIELD -DHAVE_MSG_NOSIGNAL -DHAVE_MSGHDR_MSG_CONTROL -DHAVE_ALLOCA_H -DHAVE_TIMEGM -DHAVE_EPOLL -DHAVE_SIGIO_RT -DSIGINFO64_WORKARROUND -DHAVE_SELECT -c core_cmd.c -o core_cmd.o

core_cmd.c: In function 'core_shmmem': mem/../fastlock.h:181: error: can't find a register in class 'MQ_REGS' while reloading 'asm' mem/../fastlock.h:358: error: can't find a register in class 'MQ_REGS' while reloading 'asm' mem/../fastlock.h:181: error: can't find a register in class 'MQ_REGS' while reloading 'asm' mem/../fastlock.h:181: error: 'asm' operand has impossible constraints

답변

0

아마, 당신은 점점 오류가 x86 아키텍처 및 파워 PC 아키텍처에 대한 다른 헤더 파일에 대한 별도의 헤더 파일 정의 그리고 가장 중요한 것은 다른 공유 라이브러리 파일 때문이다. "-I"플래그와 -L 옵션을 사용하여 변경할 수있는 PowerPC 아키텍처 용 공유 라이브러리 파일 경로를 사용하여 새로운 헤더 파일 정의를 변경할 수 있습니다. 그러나 이러한 모든 변경 사항은 Makefile에서 구현 될 수 있으므로 LDFLAG, CFLAGS 등과 같은 다른 플래그로 위치를 변경해야합니다.

+0

이제 IMS를 컴파일 할 수 있습니다. 교차 comiling 후 나는 전원 pc 생성 된 개체 파일을 얻을. 하지만 지금 당면한 문제는 OpenIMS에서 Makefile이 하나도 없다는 것입니다. IMS 내에서 다른 모든 메이크 파일에 영향을 주어야하는 주요 Makefile을 통해 크로스 컴파일되었습니다. 그러나 그렇게하지는 않습니다. – pragya

+0

예, 오브젝트 파일 생성시 오류는 발생하지 않지만, 크로스 컴파일 프로세스의 링크 단계에서 아키텍처 문제와 관련된 오류가 발생합니다. 그것이 '수업 시간에 등록 기관을 찾을 수 없습니다'라는 내용입니다. makefile의 어딘가에서 LDFLAG에 명시되도록 다른 공유 라이브러리 경로를 명시 적으로 지정해야합니다. – pRAShANT