聚合全网技术文章,根据你的阅读喜好进行个性推荐
开源之夏第三届火热来袭,高校学生参与赢万元奖金!>>>
对于这个问题, 我没有经验.
但是对于一个相似的问题, 我可以给出答案:
我利用 cx_freeze 做嵌入式python应用的时候, 可以将 非python的库,成功打包发布. python自身可以反射依赖.
对于C, 如果在win, 我建议你把接口发布成com服务. 就跨语言了,当然前提是你整个软件包对外提供的接口非常简洁.
如果你不嫌大, 在win,用嵌入式python和容易实现com接口服务,并进行包管理. 如果嫌大, lua可以嵌入很多语言, 那么和lua一起打包. python的另外一个好处,你很方便将其打包成http服务.
另外一个实践是,我自己有个软件包, 需要进行密集内存操作, 我就用libevent打包成简单的http服务, 呼叫方, python,php都有.
软件就是服务啦, 打包成服务就得了.
上面几样, 看看是不是符合你的需求.
也许是我没说清楚,我不是为了跨语言的问题,是中间开发c的动态库,但是同时依赖到了其他动态库,但是我想第三方使用我自己发布的动态库只需要我这个动态库
比如: 目标 A.so 使用到 B.so + C.so 我想发布 为 A+.so ,别人使用的时候只需要我这个A+.so不需要B.so 与C.so
这个当然可以.
但是有前提, 你必须拥有B.so + C.so 对应的 静态库.a文件,或者源代码, 非动态库对应的 .a 文件.
然后静态联编 生成动态 A.so 和A.a, 就不需要B.so 和C.so.
静态库.a 相当于简单的 .o 文件打包.
依赖动态链接库的代码没办法把库内容编译成静态可执行文件.
需要库源码,然后把库文件编译成静态库,链接的时候 指定静态链接.
http://blog.csdn.net/longlong821/article/details/7188133
似乎这个ILmerge可以,不过Linux下的so就不知道用什么工具了,好像还有一个DLLmerge
对于这个问题, 我没有经验.
但是对于一个相似的问题, 我可以给出答案:
我利用 cx_freeze 做嵌入式python应用的时候, 可以将 非python的库,成功打包发布. python自身可以反射依赖.
对于C, 如果在win, 我建议你把接口发布成com服务. 就跨语言了,当然前提是你整个软件包对外提供的接口非常简洁.
如果你不嫌大, 在win,用嵌入式python和容易实现com接口服务,并进行包管理. 如果嫌大, lua可以嵌入很多语言, 那么和lua一起打包. python的另外一个好处,你很方便将其打包成http服务.
另外一个实践是,我自己有个软件包, 需要进行密集内存操作, 我就用libevent打包成简单的http服务, 呼叫方, python,php都有.
软件就是服务啦, 打包成服务就得了.
上面几样, 看看是不是符合你的需求.
引用来自“宏哥”的答案
对于这个问题, 我没有经验.
但是对于一个相似的问题, 我可以给出答案:
我利用 cx_freeze 做嵌入式python应用的时候, 可以将 非python的库,成功打包发布. python自身可以反射依赖.
对于C, 如果在win, 我建议你把接口发布成com服务. 就跨语言了,当然前提是你整个软件包对外提供的接口非常简洁.
如果你不嫌大, 在win,用嵌入式python和容易实现com接口服务,并进行包管理. 如果嫌大, lua可以嵌入很多语言, 那么和lua一起打包. python的另外一个好处,你很方便将其打包成http服务.
另外一个实践是,我自己有个软件包, 需要进行密集内存操作, 我就用libevent打包成简单的http服务, 呼叫方, python,php都有.
软件就是服务啦, 打包成服务就得了.
上面几样, 看看是不是符合你的需求.
比如: 目标 A.so 使用到 B.so + C.so 我想发布 为 A+.so ,别人使用的时候只需要我这个A+.so不需要B.so 与C.so
引用来自“少帮主”的答案
引用来自“宏哥”的答案
对于这个问题, 我没有经验.
但是对于一个相似的问题, 我可以给出答案:
我利用 cx_freeze 做嵌入式python应用的时候, 可以将 非python的库,成功打包发布. python自身可以反射依赖.
对于C, 如果在win, 我建议你把接口发布成com服务. 就跨语言了,当然前提是你整个软件包对外提供的接口非常简洁.
如果你不嫌大, 在win,用嵌入式python和容易实现com接口服务,并进行包管理. 如果嫌大, lua可以嵌入很多语言, 那么和lua一起打包. python的另外一个好处,你很方便将其打包成http服务.
另外一个实践是,我自己有个软件包, 需要进行密集内存操作, 我就用libevent打包成简单的http服务, 呼叫方, python,php都有.
软件就是服务啦, 打包成服务就得了.
上面几样, 看看是不是符合你的需求.
比如: 目标 A.so 使用到 B.so + C.so 我想发布 为 A+.so ,别人使用的时候只需要我这个A+.so不需要B.so 与C.so
这个当然可以.
但是有前提, 你必须拥有B.so + C.so 对应的 静态库.a文件,或者源代码, 非动态库对应的 .a 文件.
然后静态联编 生成动态 A.so 和A.a, 就不需要B.so 和C.so.
静态库.a 相当于简单的 .o 文件打包.
依赖动态链接库的代码没办法把库内容编译成静态可执行文件.
需要库源码,然后把库文件编译成静态库,链接的时候 指定静态链接.
http://blog.csdn.net/longlong821/article/details/7188133
似乎这个ILmerge可以,不过Linux下的so就不知道用什么工具了,好像还有一个DLLmerge