2012-06-26 6 views
0

내가 rtmpdump (http://rtmpdump.mplayerhq.hu/)를 컴파일하려고에 대한 rtmpdump 컴파일QNAP NAS 419P (암)에 대한 암

나는 매우 리눅스 또는 컴파일과 exprenced 있지 않다하지만 배우려고 노력하고

.

make가 openssl을 찾을 수 없다고 불평하며 어디서부터 시작해야할지 모르시겠습니까?

[/share/Qdownload/src] # ipkg install openssl 
Package openssl (0.9.8v-2) installed in root is up to date. 
Nothing to be done 
Successfully terminated. 

내가

[/share/Qdownload/src] # 
[/share/Qdownload/src] # ipkg install zlib 
Package zlib (1.2.5-1) installed in root is up to date. 
Nothing to be done 
Successfully terminated. 
[/share/Qdownload/src] # 

내가 내가 필요하다고 생각 유일한 다른 depenance을 ZLIB이 확인 OpenSSL이 설치되어 있는지 확인합니다.

[/share/Qdownload/src] # make linux 
make[1]: Entering directory `/share/MD0_DATA/Qdownload/src' 
g++ -Wall -O2 -c -o rtmp.o rtmp.cpp 
In file included from rtmp.h:44, 
      from rtmp.cpp:42: 
dh.h:22:24: error: openssl/bn.h: No such file or directory 
dh.h:23:24: error: openssl/dh.h: No such file or directory 
dh.h:25:25: error: openssl/sha.h: No such file or directory 
dh.h:26:26: error: openssl/hmac.h: No such file or directory 
dh.h:27:25: error: openssl/rc4.h: No such file or directory 
In file included from rtmp.h:44, 
       from rtmp.cpp:42: 
dh.h:34: error: 'BIGNUM' was not declared in this scope 
dh.h:34: error: 'y' was not declared in this scope 
dh.h:34: error: 'BIGNUM' was not declared in this scope 
dh.h:34: error: 'p' was not declared in this scope 
dh.h:34: error: 'BIGNUM' was not declared in this scope 
dh.h:34: error: 'q' was not declared in this scope 
dh.h:34: error: initializer expression list treated as compound expression 
dh.h:35: error: expected constructor, destructor, or type conversion before '*' token 
dh.h:36: error: 'DH' was not declared in this scope 
dh.h:36: error: 'dh' was not declared in this scope 
dh.h:37: error: 'DH' was not declared in this scope 
dh.h:37: error: 'dh' was not declared in this scope 
dh.h:37: error: expected primary-expression before '*' token 
dh.h:37: error: 'pubkey' was not declared in this scope 
dh.h:37: error: expected primary-expression before 'nPubkeyLen' 
dh.h:37: error: initializer expression list treated as compound expression 
dh.h:38: error: 'DH' was not declared in this scope 
dh.h:38: error: 'dh' was not declared in this scope 
dh.h:38: error: expected primary-expression before '*' token 
dh.h:38: error: 'privkey' was not declared in this scope 
dh.h:38: error: expected primary-expression before 'nPrivkeyLen' 
dh.h:38: error: initializer expression list treated as compound expression 
dh.h:39: error: 'DH' was not declared in this scope 
dh.h:39: error: 'dh' was not declared in this scope 
dh.h:39: error: expected primary-expression before '*' token 
dh.h:39: error: 'pubkey' was not declared in this scope 
dh.h:39: error: expected primary-expression before 'nPubkeyLen' 
dh.h:39: error: expected primary-expression before '*' token 
dh.h:39: error: 'secret' was not declared in this scope 
dh.h:39: error: initializer expression list treated as compound expression 
dh.h:40: error: variable or field 'DHFree' declared void 
dh.h:40: error: 'DH' was not declared in this scope 
dh.h:40: error: 'dh' was not declared in this scope 
In file included from rtmp.cpp:42: 
rtmp.h:97: error: ISO C++ forbids declaration of 'DH' with no type 
rtmp.h:97: error: expected ';' before '*' token 
rtmp.h:98: error: ISO C++ forbids declaration of 'RC4_KEY' with no type 
rtmp.h:98: error: expected ';' before '*' token 
rtmp.h:99: error: ISO C++ forbids declaration of 'RC4_KEY' with no type 
rtmp.h:99: error: expected ';' before '*' token 
rtmp.cpp: In member function 'int RTMP_LIB::CRTMP::ReadN(char*, int)': 
rtmp.cpp:653: error: 'struct RTMP_LIB::LNK' has no member named 'rc4keyIn' 
rtmp.cpp:654: error: 'struct RTMP_LIB::LNK' has no member named 'rc4keyIn' 
rtmp.cpp:654: error: 'RC4' was not declared in this scope 
rtmp.cpp: In member function 'bool RTMP_LIB::CRTMP::WriteN(const char*, int)': 
rtmp.cpp:672: error: 'struct RTMP_LIB::LNK' has no member named 'rc4keyOut' 
rtmp.cpp:674: error: 'struct RTMP_LIB::LNK' has no member named 'rc4keyOut' 
rtmp.cpp:674: error: 'RC4' was not declared in this scope 
make[1]: *** [rtmp.o] Error 1 
make[1]: Leaving directory `/share/MD0_DATA/Qdownload/src' 
make: *** [linux] Error 2 
[/share/Qdownload/src] # 

조언 해 주셔서 감사합니다.

+0

'구성'단계가 여기에 참여 했습니까? 라이브러리가 컴파일러가 찾을 수있는 위치에 있지 않은 것처럼 보입니다. 따라서 경로가 지정되어야합니다. 이 방법을 README에서 확인하십시오. – bcelary

+0

아, 한가지 더. 사용할 수있는 openssl-devel 또는 openssl-dev 패키지가 있는지 확인 했습니까? 설치된 라이브러리는 대부분 라이브러리 일뿐입니다. – bcelary

+0

구성 단계가 없으므로 devs 버전의 open ssl이 없습니다. 나는 이것을 조사 할 것이다. – user1055212

답변

1

openssl 및 zlib 패키지의 개발 버전을 설치하십시오.

또한 openssl 디렉토리는 /usr/include/usr/local/include이어야하며 툴 체인에 따라 다른 표준 디렉토리 포함 디렉토리에 있어야합니다.

그러나 내 말을 듣고 cpp -v < /dev/null을 실행하지 마십시오./dev/null로부터의 입력으로 GNU C 전처리기를 실행합니다. 디렉토리 검색 경로를 인쇄해야합니다. "#include < ...> 여기에서 검색 시작 :"다음에 표준 include 검색 경로 목록이옵니다. 이것은 또한 포함 순서입니다.

+0

두 패키지 중 하나의 개발 버전이 없습니다. 불행히도 ipkg는 일반 버전 만 설치할 수 있습니다. 나는 dev 버전을 스스로 컴파일해야한다. – user1055212

+0

devs 버전을 컴파일하고 설치하면 많은 것들이 이미 openssl에 의존한다. 다른 것들을 깨지 않고 두 버전을 설치하는 것이 좋을까? – user1055212

+0

당신이 어떤 배포판인지 잘 모르겠다. 솔직히 말해서 나는 ipkg을 다뤄 본 적이 없다. 그것은 불황인가? Debian/Ubuntu에서 -dev 버전은 패키지를 제거하지 않지만 더 많은 파일 (include, devs docs 등)을 추가하므로 라이브러리를 올바르게 포함/링크 할 수 있습니다. – bcelary

0

ARM 용으로 컴파일하는 경우 자체 배포판 용 라이브러리를 설치하기에는 부족합니다 ... 개발 컴퓨터 (x86 또는 x86_64)에서 실행되는 교차 라이브러리 및 컴파일러가 필요하지만 대상에 대한 코드가 생성됩니다 플랫폼 (ARM).

이 Qnap NAS에 크로스 컴파일러가없는 경우 this linkcrosstool-ng으로 생성하는 데 도움이되므로 처음부터 교차 컴파일러를 작성하는 데 도움이되는 훌륭한 도구입니다. 그렇다면 타겟 플랫폼을 위해 만들어진 라이브러리가있는 루트 파일 시스템이 필요할 것입니다.

크로스 컴파일과 관련된 모든 작업은 간단하지만 도움을 제공 할 수 있습니다. 컴퓨터에서 어떤 배포판을 실행하고 있습니까?

+0

도움을 주셔서 감사합니다. 나는 크로스 컴파일을 시도하지 않고 Qnap NAS에서 직접 컴파일하려고합니다. 필자는 컴파일러를 설치하고 Optware IPKG 패키지 관리자를 가지고 있습니다. 불행히도 ipkg에서 openssl-dev 패키지를 얻을 수 없습니다. 나는 이것을하기를 예상했던 것보다 훨씬 더 힘든 일이 될 것이라고 짐작하고있다. – user1055212

+0

ipkg은 모르지만 배포판에 따라 패키지의 이름은 "-dev"가 아닙니다. 어떤 배포판을 사용하고 있는지 알고 계십니까? (슬랙웨어 나는 그것을 매일 사용하지 않는다고 확신한다.) – Claudio

관련 문제