0

Qnap NAS 419p(arm)用にrtmpdump(http://rtmpdump.mplayerhq.hu/)をコンパイルしようとしています

私はLinuxやコンパイルについてあまり経験がありませんが、学ぼうとしています。

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.

opensslをインストールしたことを確認します

[/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] #

私が必要だと思う他の唯一の依存関係がzlibであることを確認します。

[/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] #

あなたが与えることができるどんなアドバイスにも感謝します。

4

2 に答える 2

1

必ずopensslおよびzlibパッケージの開発バージョンをインストールしてください。

また、opensslディレクトリが標準システムのどこかにあることを確認してください。これには、ツールチェーンに応じて必要なディレクトリとその他の/usr/includeディレクトリが含まれます。/usr/local/include

しかし、私の言葉を信じて実行しないでくださいcpp -v < /dev/null。/ dev/nullからの入力でGNUCプリプロセッサを実行します。ディレクトリ検索パスを出力する必要があります。「#include<...>検索はここから始まります:」を探し、続いて標準のインクルード検索パスのリストを探します。これは、含める順序でもあります。

于 2012-06-26T16:13:10.727 に答える
0

ARM用にコンパイルする場合は、独自のディストリビューション用のライブラリをインストールするだけでは不十分です...開発マシン(おそらくx86またはx86_64)で実行されるが、ターゲットプラットフォーム(ARM)用のコードを生成するライブラリとクロスコンパイラが必要です。 。

このQnapNASのクロスコンパイラーがない場合、このリンクは、クロスコンパイラーを最初から構築するのに役立つ優れたツールであるcrosstool-ngを使用してクロスコンパイラーを生成するのに役立ちます。次に、ターゲットプラットフォーム用に作成されたライブラリを備えたルートファイルシステムもおそらく必要になります。

クロスコンパイルを含むすべては重要ですが、私たちは助けることを試みることができます。マシンで実行しているディストリビューションは何ですか?

于 2012-06-26T19:57:24.383 に答える