[rtmpdump] rtmpdump build problem on Mac OS X 10.11.1 El Capitan / Xcode 7.1.1
桃源老師
xanadu6291 at dream.jp
Tue Dec 1 13:17:38 CET 2015
Hello list member,
I'm now trying to build rtmpdump under Mac OS X 10.11.1 El Capitan / Xcode 7.1.1 but yet not succeeded.
I'm trying to use GnuTLS for crypt and I'm now thinking this is succeeded.
But in making rtmpdump, I get "ld: library not found for -lgnutls" error when executing "gcc -Wall -o rtmpdump rtmpdump.o -Llibrtmp -lrtmp -lgnutls -lhogweed -lnettle -lgmp -lz" portion.
My make command and log is as follows:
$ export TARGET ="/Users/roushi/Desktop/RTMPDump_Test"
$ make SYS=darwin CRYPTO=GNUTLS SHARED=no INC=-I${TARGET}/include
gcc -Wall -I/Users/roushi/Desktop/RTMPDump_Test/include -DRTMPDUMP_VERSION=\"v2.4\" -DUSE_GNUTLS -O2 -c -o rtmp.o rtmp.c
rtmp.c:277:44: warning: 'gnutls_certificate_credentials' is deprecated
[-Wdeprecated-declarations]
gnutls_certificate_allocate_credentials((gnutls_certificate_credential...
^
/Users/roushi/Desktop/RTMPDump_Test/include/gnutls/compat.h:95:5: note:
'gnutls_certificate_credentials' has been explicitly marked deprecated
here
gnutls_certificate_credentials _GNUTLS_GCC_ATTR_DEPRECATED;
^
rtmp.c:2599:24: warning: passing 'char *' to parameter of type 'const uint8_t *'
(aka 'const unsigned char *') converts between pointers to integer types
with different sign [-Wpointer-sign]
MD5_Update(&md5ctx, user.av_val, user.av_len);
^~~~~~~~~~~
rtmp.c:2490:53: note: expanded from macro 'MD5_Update'
#define MD5_Update(ctx,data,len) md5_update(ctx,len,data)
^
/Users/roushi/Desktop/RTMPDump_Test/include/nettle/md5.h:70:20: note: passing
argument to parameter 'data' here
const uint8_t *data);
^
rtmp.c:2600:24: warning: passing 'char *' to parameter of type 'const uint8_t *'
(aka 'const unsigned char *') converts between pointers to integer types
with different sign [-Wpointer-sign]
MD5_Update(&md5ctx, salt.av_val, salt.av_len);
^~~~~~~~~~~
rtmp.c:2490:53: note: expanded from macro 'MD5_Update'
#define MD5_Update(ctx,data,len) md5_update(ctx,len,data)
^
/Users/roushi/Desktop/RTMPDump_Test/include/nettle/md5.h:70:20: note: passing
argument to parameter 'data' here
const uint8_t *data);
^
rtmp.c:2601:24: warning: passing 'char *' to parameter of type 'const uint8_t *'
(aka 'const unsigned char *') converts between pointers to integer types
with different sign [-Wpointer-sign]
MD5_Update(&md5ctx, r->Link.pubPasswd.av_val, r->Link.pubPassw...
^~~~~~~~~~~~~~~~~~~~~~~~
rtmp.c:2490:53: note: expanded from macro 'MD5_Update'
#define MD5_Update(ctx,data,len) md5_update(ctx,len,data)
^
/Users/roushi/Desktop/RTMPDump_Test/include/nettle/md5.h:70:20: note: passing
argument to parameter 'data' here
const uint8_t *data);
^
rtmp.c:2616:24: warning: passing 'char [56]' to parameter of type
'const uint8_t *' (aka 'const unsigned char *') converts between pointers
to integer types with different sign [-Wpointer-sign]
MD5_Update(&md5ctx, salted2, B64DIGEST_LEN);
^~~~~~~
rtmp.c:2490:53: note: expanded from macro 'MD5_Update'
#define MD5_Update(ctx,data,len) md5_update(ctx,len,data)
^
/Users/roushi/Desktop/RTMPDump_Test/include/nettle/md5.h:70:20: note: passing
argument to parameter 'data' here
const uint8_t *data);
^
rtmp.c:2619:26: warning: passing 'char *' to parameter of type 'const uint8_t *'
(aka 'const unsigned char *') converts between pointers to integer types
with different sign [-Wpointer-sign]
MD5_Update(&md5ctx, opaque.av_val, opaque.av_len);
^~~~~~~~~~~~~
rtmp.c:2490:53: note: expanded from macro 'MD5_Update'
#define MD5_Update(ctx,data,len) md5_update(ctx,len,data)
^
/Users/roushi/Desktop/RTMPDump_Test/include/nettle/md5.h:70:20: note: passing
argument to parameter 'data' here
const uint8_t *data);
^
rtmp.c:2621:26: warning: passing 'char *' to parameter of type 'const uint8_t *'
(aka 'const unsigned char *') converts between pointers to integer types
with different sign [-Wpointer-sign]
MD5_Update(&md5ctx, challenge.av_val, challenge.av_len);
^~~~~~~~~~~~~~~~
rtmp.c:2490:53: note: expanded from macro 'MD5_Update'
#define MD5_Update(ctx,data,len) md5_update(ctx,len,data)
^
/Users/roushi/Desktop/RTMPDump_Test/include/nettle/md5.h:70:20: note: passing
argument to parameter 'data' here
const uint8_t *data);
^
rtmp.c:2622:24: warning: passing 'char [16]' to parameter of type
'const uint8_t *' (aka 'const unsigned char *') converts between pointers
to integer types with different sign [-Wpointer-sign]
MD5_Update(&md5ctx, challenge2, B64INT_LEN);
^~~~~~~~~~
rtmp.c:2490:53: note: expanded from macro 'MD5_Update'
#define MD5_Update(ctx,data,len) md5_update(ctx,len,data)
^
/Users/roushi/Desktop/RTMPDump_Test/include/nettle/md5.h:70:20: note: passing
argument to parameter 'data' here
const uint8_t *data);
^
rtmp.c:2765:24: warning: passing 'char *' to parameter of type 'const uint8_t *'
(aka 'const unsigned char *') converts between pointers to integer types
with different sign [-Wpointer-sign]
MD5_Update(&md5ctx, user.av_val, user.av_len);
^~~~~~~~~~~
rtmp.c:2490:53: note: expanded from macro 'MD5_Update'
#define MD5_Update(ctx,data,len) md5_update(ctx,len,data)
^
/Users/roushi/Desktop/RTMPDump_Test/include/nettle/md5.h:70:20: note: passing
argument to parameter 'data' here
const uint8_t *data);
^
rtmp.c:2766:24: warning: passing 'char [2]' to parameter of type
'const uint8_t *' (aka 'const unsigned char *') converts between pointers
to integer types with different sign [-Wpointer-sign]
MD5_Update(&md5ctx, ":", 1);
^~~
rtmp.c:2490:53: note: expanded from macro 'MD5_Update'
#define MD5_Update(ctx,data,len) md5_update(ctx,len,data)
^
/Users/roushi/Desktop/RTMPDump_Test/include/nettle/md5.h:70:20: note: passing
argument to parameter 'data' here
const uint8_t *data);
^
rtmp.c:2767:24: warning: passing 'const char [5]' to parameter of type
'const uint8_t *' (aka 'const unsigned char *') converts between pointers
to integer types with different sign [-Wpointer-sign]
MD5_Update(&md5ctx, realm, sizeof(realm)-1);
^~~~~
rtmp.c:2490:53: note: expanded from macro 'MD5_Update'
#define MD5_Update(ctx,data,len) md5_update(ctx,len,data)
^
/Users/roushi/Desktop/RTMPDump_Test/include/nettle/md5.h:70:20: note: passing
argument to parameter 'data' here
const uint8_t *data);
^
rtmp.c:2768:24: warning: passing 'char [2]' to parameter of type
'const uint8_t *' (aka 'const unsigned char *') converts between pointers
to integer types with different sign [-Wpointer-sign]
MD5_Update(&md5ctx, ":", 1);
^~~
rtmp.c:2490:53: note: expanded from macro 'MD5_Update'
#define MD5_Update(ctx,data,len) md5_update(ctx,len,data)
^
/Users/roushi/Desktop/RTMPDump_Test/include/nettle/md5.h:70:20: note: passing
argument to parameter 'data' here
const uint8_t *data);
^
rtmp.c:2769:24: warning: passing 'char *' to parameter of type 'const uint8_t *'
(aka 'const unsigned char *') converts between pointers to integer types
with different sign [-Wpointer-sign]
MD5_Update(&md5ctx, r->Link.pubPasswd.av_val, r->Link.pubPassw...
^~~~~~~~~~~~~~~~~~~~~~~~
rtmp.c:2490:53: note: expanded from macro 'MD5_Update'
#define MD5_Update(ctx,data,len) md5_update(ctx,len,data)
^
/Users/roushi/Desktop/RTMPDump_Test/include/nettle/md5.h:70:20: note: passing
argument to parameter 'data' here
const uint8_t *data);
^
rtmp.c:2784:24: warning: passing 'const char [8]' to parameter of type
'const uint8_t *' (aka 'const unsigned char *') converts between pointers
to integer types with different sign [-Wpointer-sign]
MD5_Update(&md5ctx, method, sizeof(method)-1);
^~~~~~
rtmp.c:2490:53: note: expanded from macro 'MD5_Update'
#define MD5_Update(ctx,data,len) md5_update(ctx,len,data)
^
/Users/roushi/Desktop/RTMPDump_Test/include/nettle/md5.h:70:20: note: passing
argument to parameter 'data' here
const uint8_t *data);
^
rtmp.c:2785:24: warning: passing 'char [3]' to parameter of type
'const uint8_t *' (aka 'const unsigned char *') converts between pointers
to integer types with different sign [-Wpointer-sign]
MD5_Update(&md5ctx, ":/", 2);
^~~~
rtmp.c:2490:53: note: expanded from macro 'MD5_Update'
#define MD5_Update(ctx,data,len) md5_update(ctx,len,data)
^
/Users/roushi/Desktop/RTMPDump_Test/include/nettle/md5.h:70:20: note: passing
argument to parameter 'data' here
const uint8_t *data);
^
rtmp.c:2786:24: warning: passing 'char *' to parameter of type 'const uint8_t *'
(aka 'const unsigned char *') converts between pointers to integer types
with different sign [-Wpointer-sign]
MD5_Update(&md5ctx, apptmp.av_val, apptmp.av_len);
^~~~~~~~~~~~~
rtmp.c:2490:53: note: expanded from macro 'MD5_Update'
#define MD5_Update(ctx,data,len) md5_update(ctx,len,data)
^
/Users/roushi/Desktop/RTMPDump_Test/include/nettle/md5.h:70:20: note: passing
argument to parameter 'data' here
const uint8_t *data);
^
rtmp.c:2788:26: warning: passing 'char [11]' to parameter of type
'const uint8_t *' (aka 'const unsigned char *') converts between pointers
to integer types with different sign [-Wpointer-sign]
MD5_Update(&md5ctx, "/_definst_", sizeof("/_definst_") - 1);
^~~~~~~~~~~~
rtmp.c:2490:53: note: expanded from macro 'MD5_Update'
#define MD5_Update(ctx,data,len) md5_update(ctx,len,data)
^
/Users/roushi/Desktop/RTMPDump_Test/include/nettle/md5.h:70:20: note: passing
argument to parameter 'data' here
const uint8_t *data);
^
rtmp.c:2797:24: warning: passing 'char [33]' to parameter of type
'const uint8_t *' (aka 'const unsigned char *') converts between pointers
to integer types with different sign [-Wpointer-sign]
MD5_Update(&md5ctx, hash1, HEXHASH_LEN);
^~~~~
rtmp.c:2490:53: note: expanded from macro 'MD5_Update'
#define MD5_Update(ctx,data,len) md5_update(ctx,len,data)
^
/Users/roushi/Desktop/RTMPDump_Test/include/nettle/md5.h:70:20: note: passing
argument to parameter 'data' here
const uint8_t *data);
^
rtmp.c:2798:24: warning: passing 'char [2]' to parameter of type
'const uint8_t *' (aka 'const unsigned char *') converts between pointers
to integer types with different sign [-Wpointer-sign]
MD5_Update(&md5ctx, ":", 1);
^~~
rtmp.c:2490:53: note: expanded from macro 'MD5_Update'
#define MD5_Update(ctx,data,len) md5_update(ctx,len,data)
^
/Users/roushi/Desktop/RTMPDump_Test/include/nettle/md5.h:70:20: note: passing
argument to parameter 'data' here
const uint8_t *data);
^
rtmp.c:2799:24: warning: passing 'char *' to parameter of type 'const uint8_t *'
(aka 'const unsigned char *') converts between pointers to integer types
with different sign [-Wpointer-sign]
MD5_Update(&md5ctx, nonce.av_val, nonce.av_len);
^~~~~~~~~~~~
rtmp.c:2490:53: note: expanded from macro 'MD5_Update'
#define MD5_Update(ctx,data,len) md5_update(ctx,len,data)
^
/Users/roushi/Desktop/RTMPDump_Test/include/nettle/md5.h:70:20: note: passing
argument to parameter 'data' here
const uint8_t *data);
^
rtmp.c:2800:24: warning: passing 'char [2]' to parameter of type
'const uint8_t *' (aka 'const unsigned char *') converts between pointers
to integer types with different sign [-Wpointer-sign]
MD5_Update(&md5ctx, ":", 1);
^~~
rtmp.c:2490:53: note: expanded from macro 'MD5_Update'
#define MD5_Update(ctx,data,len) md5_update(ctx,len,data)
^
/Users/roushi/Desktop/RTMPDump_Test/include/nettle/md5.h:70:20: note: passing
argument to parameter 'data' here
const uint8_t *data);
^
rtmp.c:2801:24: warning: passing 'char [9]' to parameter of type
'const uint8_t *' (aka 'const unsigned char *') converts between pointers
to integer types with different sign [-Wpointer-sign]
MD5_Update(&md5ctx, nchex, sizeof(nchex)-1);
^~~~~
rtmp.c:2490:53: note: expanded from macro 'MD5_Update'
#define MD5_Update(ctx,data,len) md5_update(ctx,len,data)
^
/Users/roushi/Desktop/RTMPDump_Test/include/nettle/md5.h:70:20: note: passing
argument to parameter 'data' here
const uint8_t *data);
^
rtmp.c:2802:24: warning: passing 'char [2]' to parameter of type
'const uint8_t *' (aka 'const unsigned char *') converts between pointers
to integer types with different sign [-Wpointer-sign]
MD5_Update(&md5ctx, ":", 1);
^~~
rtmp.c:2490:53: note: expanded from macro 'MD5_Update'
#define MD5_Update(ctx,data,len) md5_update(ctx,len,data)
^
/Users/roushi/Desktop/RTMPDump_Test/include/nettle/md5.h:70:20: note: passing
argument to parameter 'data' here
const uint8_t *data);
^
rtmp.c:2803:24: warning: passing 'char [9]' to parameter of type
'const uint8_t *' (aka 'const unsigned char *') converts between pointers
to integer types with different sign [-Wpointer-sign]
MD5_Update(&md5ctx, cnonce, sizeof(cnonce)-1);
^~~~~~
rtmp.c:2490:53: note: expanded from macro 'MD5_Update'
#define MD5_Update(ctx,data,len) md5_update(ctx,len,data)
^
/Users/roushi/Desktop/RTMPDump_Test/include/nettle/md5.h:70:20: note: passing
argument to parameter 'data' here
const uint8_t *data);
^
rtmp.c:2804:24: warning: passing 'char [2]' to parameter of type
'const uint8_t *' (aka 'const unsigned char *') converts between pointers
to integer types with different sign [-Wpointer-sign]
MD5_Update(&md5ctx, ":", 1);
^~~
rtmp.c:2490:53: note: expanded from macro 'MD5_Update'
#define MD5_Update(ctx,data,len) md5_update(ctx,len,data)
^
/Users/roushi/Desktop/RTMPDump_Test/include/nettle/md5.h:70:20: note: passing
argument to parameter 'data' here
const uint8_t *data);
^
rtmp.c:2805:24: warning: passing 'const char [5]' to parameter of type
'const uint8_t *' (aka 'const unsigned char *') converts between pointers
to integer types with different sign [-Wpointer-sign]
MD5_Update(&md5ctx, qop, sizeof(qop)-1);
^~~
rtmp.c:2490:53: note: expanded from macro 'MD5_Update'
#define MD5_Update(ctx,data,len) md5_update(ctx,len,data)
^
/Users/roushi/Desktop/RTMPDump_Test/include/nettle/md5.h:70:20: note: passing
argument to parameter 'data' here
const uint8_t *data);
^
rtmp.c:2806:24: warning: passing 'char [2]' to parameter of type
'const uint8_t *' (aka 'const unsigned char *') converts between pointers
to integer types with different sign [-Wpointer-sign]
MD5_Update(&md5ctx, ":", 1);
^~~
rtmp.c:2490:53: note: expanded from macro 'MD5_Update'
#define MD5_Update(ctx,data,len) md5_update(ctx,len,data)
^
/Users/roushi/Desktop/RTMPDump_Test/include/nettle/md5.h:70:20: note: passing
argument to parameter 'data' here
const uint8_t *data);
^
rtmp.c:2807:24: warning: passing 'char [33]' to parameter of type
'const uint8_t *' (aka 'const unsigned char *') converts between pointers
to integer types with different sign [-Wpointer-sign]
MD5_Update(&md5ctx, hash2, HEXHASH_LEN);
^~~~~
rtmp.c:2490:53: note: expanded from macro 'MD5_Update'
#define MD5_Update(ctx,data,len) md5_update(ctx,len,data)
^
/Users/roushi/Desktop/RTMPDump_Test/include/nettle/md5.h:70:20: note: passing
argument to parameter 'data' here
const uint8_t *data);
^
rtmp.c:1902:1: warning: unused variable 'av_record' [-Wunused-const-variable]
SAVC(record);
^
rtmp.c:1556:35: note: expanded from macro 'SAVC'
#define SAVC(x) static const AVal av_##x = AVC(#x)
^
<scratch space>:147:1: note: expanded from here
av_record
^
rtmp.c:2904:19: warning: unused variable 'av_NetConnection_Connect_Rejected'
[-Wunused-const-variable]
static const AVal av_NetConnection_Connect_Rejected =
^
30 warnings generated.
gcc -Wall -I/Users/roushi/Desktop/RTMPDump_Test/include -DRTMPDUMP_VERSION=\"v2.4\" -DUSE_GNUTLS -O2 -c -o log.o log.c
gcc -Wall -I/Users/roushi/Desktop/RTMPDump_Test/include -DRTMPDUMP_VERSION=\"v2.4\" -DUSE_GNUTLS -O2 -c -o amf.o amf.c
In file included from amf.c:33:
./bytes.h:74:2: warning: "Float word order not defined, assuming the same as
byte order!" [-W#warnings]
#warning "Float word order not defined, assuming the same as byte order!"
^
1 warning generated.
gcc -Wall -I/Users/roushi/Desktop/RTMPDump_Test/include -DRTMPDUMP_VERSION=\"v2.4\" -DUSE_GNUTLS -O2 -c -o hashswf.o hashswf.c
hashswf.c:585:22: warning: passing 'char [31]' to parameter of type
'const uint8_t *' (aka 'const unsigned char *') converts between pointers
to integer types with different sign [-Wpointer-sign]
HMAC_setup(in.ctx, "Genuine Adobe Flash Player 001", 30);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
hashswf.c:51:66: note: expanded from macro 'HMAC_setup'
#define HMAC_setup(ctx, key, len) hmac_sha256_set_key(&ctx, len, key)
^
/Users/roushi/Desktop/RTMPDump_Test/include/nettle/hmac.h:155:41: note: passing
argument to parameter 'key' here
size_t key_length, const uint8_t *key);
^
1 warning generated.
gcc -Wall -I/Users/roushi/Desktop/RTMPDump_Test/include -DRTMPDUMP_VERSION=\"v2.4\" -DUSE_GNUTLS -O2 -c -o parseurl.o parseurl.c
ar rs librtmp.a rtmp.o log.o amf.o hashswf.o parseurl.o
ar: creating archive librtmp.a
gcc -Wall -I/Users/roushi/Desktop/RTMPDump_Test/include -DRTMPDUMP_VERSION=\"v2.4\" -O2 -c -o rtmpdump.o rtmpdump.c
rtmpdump.c:335:23: warning: comparison of unsigned expression < 0 is always
false [-Wtautological-compare]
if (prevTagSize < 0 || prevTagSize > size - 4 - 13)
~~~~~~~~~~~ ^ ~
rtmpdump.c:398:14: warning: comparison of unsigned expression < 0 is always
false [-Wtautological-compare]
if (*dSeek < 0)
~~~~~~ ^ ~
2 warnings generated.
gcc -Wall -o rtmpdump rtmpdump.o -Llibrtmp -lrtmp -lgnutls -lhogweed -lnettle -lgmp -lz
ld: library not found for -lgnutls
clang: error: linker command failed with exit code 1 (use -v to see invocation)
make: *** [rtmpdump] Error 1
If you need any further information, let me know what and how to get it.
Best Regards,
// Miya
-------------- next part --------------
A non-text attachment was scrubbed...
Name: smime.p7s
Type: application/pkcs7-signature
Size: 2374 bytes
Desc: not available
URL: <http://lists.mplayerhq.hu/pipermail/rtmpdump/attachments/20151201/7d648765/attachment-0001.bin>
More information about the rtmpdump
mailing list