嵌入式 不同平台编译faac出错"mpeg4ip.h:126: error: new declaration ‘char* strcasestr(const char*, const char*)’"

这个错误是分不同的平台以及编译器的版本:

不同平台的编译选项为:

arm平台:

 ./configure --host=arm-linux --disable-shared --enable-static CC=arm-hisiv100nptl-linux-gcc CXX=arm-hisiv100nptl-linux-g++ --prefix=/qy_work/a3518_v080_develop/hi_test/mp4/pcm_aac/pack_tgz/joseph_lib/arm

./configure --host=arm-linux --disable-shared --enable-static --with-mp4v2 CFLAGS=-O2 CC=arm-hisiv100nptl-linux-gcc CXX=arm-hisiv100nptl-linux-g++ --prefix=/qy_work/a3518_v080_develop/hi_test/mp4/pcm_aac/pack_tgz/lib_joseph/arm

x86平台:
 ./configure --disable-shared --enable-static --prefix=/qy_work/a3518_v080_develop/hi_test/mp4/pcm_aac/pack_tgz/joseph_lib/x86

./configure --disable-shared --enable-static CFLAGS=-O2 --with-mp4v2 --prefix=/qy_work/a3518_v080_develop/hi_test/mp4/pcm_aac/pack_tgz/lib_joseph/x86

faac源码编译后运行cmd示例:

./faac -P -R 8000 -B 16 -C 1 -X -o nemozhu.aac nemozhu.pcm 

目录:"./common/mp4v2/mpeg4ip.h"

我的整体修改如下:

{

/*alter by kj*/
#ifdef JOSEPH_X86

                 
#ifdef __cplusplus
extern "C++" {
#endif
const char *strcasestr(const char *haystack, const char *needle);
#ifdef __cplusplus
}
#endif

 #else

#ifdef __cplusplus
extern "C" {
#endif
char *strcasestr(const char *haystack, const char *needle);
#ifdef __cplusplus
}
 #endif
 
 #endif
/*end alter by kj*/

}

在x86平台如果出现错误根据错误进行如下修改:

编译FAAC-1.28时遇到错误:

mpeg4ip.h:126: error: new declaration ‘char* strcasestr(const char*, const char*)’

解决方法:

从123行开始修改此文件mpeg4ip.h,到129行结束。
修改前:
#ifdef __cplusplus
extern "C" {
#endif
char *strcasestr(const char *haystack, const char *needle);
#ifdef __cplusplus
}
#endif

修改后:
#ifdef __cplusplus
extern "C++" {
#endif
const char *strcasestr(const char *haystack, const char *needle);
#ifdef __cplusplus
}
#endif

在arm平台如果出现错误根据错误进行如下修改:

#ifdef __cplusplus
extern "C" {
#endif
char *strcasestr(const char *haystack, const char *needle);
#ifdef __cplusplus
}
 #endif
faac具体使用示例见我另一篇博客:
http://blog.csdn.net/skdkjzz/article/details/39557937

你可能感兴趣的:(嵌入式 不同平台编译faac出错"mpeg4ip.h:126: error: new declaration ‘char* strcasestr(const char*, const char*)’")