-
Notifications
You must be signed in to change notification settings - Fork 1.1k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
makefile #151
Comments
感谢,方便的话把你的Makefile提个MR? |
已在sdk项目中提交,pr通过后,会在media_server,3rd,avcodec中一并提交修改 |
已合入, 非常感谢! |
我也有些关于Makefile的意见, 请问是在这个 issue 合并讨论还是另开 issue.
除了第2点fvisibility=hidden的问题, 我不知道作者要export哪些接口, 只是临时关闭了该功能. 其他修改已有补丁. 请问是否需要提个 PR 给你? |
欢迎提PR! 其它一些问题:
目前都是已静态库方式提供,哪个项目需要编译动态库?
-fvisibility=hidden 用于动态库,默认情况下不导出任何函数,除非头文件中定义了visible或者定义map文件。
协议代码默认都不包含网络处理部分, aio代码在test中编译,这是特意设计的。 |
我个人嵌入式项目想集成作者的媒体库, 习惯性会使用动态库.
是的, 我看头文件中也没有设置接口的可见性, 直接编译动态库出来应该没办法使用. 我个人也喜欢默认隐藏所有符号, 手动导出对外API. 因此是否先屏蔽该编译参数, 在所有接口显示设置可见性后才放开该参数. 目前我仅看了mpeg库, 感觉只有mpeg-ts.h和mpeg-ps.h和若干宏是需要导出的, 其他include文件夹下的文件(API)感觉属于内部API.
了解. |
对嵌入式不太了解,如果需要编译动态库,可以参考sdk/libaio的makefile文件, 在这个项目中,使用map文件导出需要的函数。
如上,在include gcc.mk文件后,可以修改visibility为default |
想支持cmake编译,但是一直拖延至今,欢迎提交cmake编译脚本。 |
怎么让符号可见, 这个我也略有研究过. 因此想跟您讨论下控制符号导出的方式.
#if defined _WIN32 || defined __CYGWIN__
#ifdef BUILDING_DLL
#ifdef __GNUC__
#define DLL_PUBLIC __attribute__ ((dllexport))
#else
#define DLL_PUBLIC __declspec(dllexport) // Note: actually gcc seems to also supports this syntax.
#endif
#else
#ifdef __GNUC__
#define DLL_PUBLIC __attribute__ ((dllimport))
#else
#define DLL_PUBLIC __declspec(dllimport) // Note: actually gcc seems to also supports this syntax.
#endif
#endif
#define DLL_LOCAL
#else
#if __GNUC__ >= 4
#define DLL_PUBLIC __attribute__ ((visibility ("default")))
#define DLL_LOCAL __attribute__ ((visibility ("hidden")))
#else
#define DLL_PUBLIC
#define DLL_LOCAL
#endif
#endif |
好的, 那我周末弄下. 过程中会有些细节问题想跟您实时交流, 方便留个联系方式吗. |
1,是不是可以把Makefile编译脚本整理一下?现在编译打印比较乱,重要信息全部淹没了,而且在linux下编译有很多警告,虽然暂时不影响功能,个人改了一下Makefile脚本,效果如下
CC mov-mvhd.o
...........
CC mov-tfdt.o
AR libmov.a
make ok, output: debug.linux/libmov.a
2,作者是不是在win下开发比较多?,下载了几次,linux下编译不通过,还需要改一下
The text was updated successfully, but these errors were encountered: