查看: 1226| 回复: 7
跳转到指定楼层
上一主题 下一主题
收起左侧

请问:C++程序的安装问题

全局:

注册一亩三分地论坛,查看更多干货!

您需要 登录 才可以下载或查看附件。没有帐号?注册账号

x
我有一个特别傻的问题,比如我的一个C++程序,它依赖一些third party library. 通常,我在build的时候,通过make file中的设置,就把那些依赖的libray以静态或者动态的形式包括进来了,然后做成一个安装包, 交给客户。
但是有些情况,好像必须让客户在他的机器上安装一些软件,然后才能安装我的软件。这里不考虑版权的问题(比如我没有那些第三方软件的版权)。为什么会有这个区别呢?这种问题有什么科普的材料吗?谢谢!


上一篇:对于长期技术积累,应该注重横向发展还是纵向发展
下一篇:数据🧱solution architect/solution engineer
全局:
本帖最后由 xiaomajia001 于 2020-9-12 07:34 编辑

你描述的不够清楚,你这是在Windows上还是在Linux上?你的安装包是二进制分发还是源码分发? 你客户的平台跟你的开发平台是一样的吗? 你的安装包包括了你的动态库文件吗?
另外,第三方库不随着自己的程序一起分发的一个好处就是用户可以单独升级第三方库

评分

参与人数 1大米 +1 收起 理由
vicfunkk + 1 赞一个

查看全部评分

回复

使用道具 举报

推荐
bible 2020-9-12 09:24:33 | 只看该作者
全局:
是在Windows下吗
如果是在Windows下,除了楼上几位所说的动态库需要打包进installer以外,installer还有可能会安装驱动,添加字体,写注册表,写environment variables,注册COM组件,启动服务。。。
如果lz的third party libraries恰巧依赖以上任何某一项,而lz打包的时候没有考虑到,那就需要额外操作了。lz提到的让客户在他的机器上安装一些软件,或许这些软件恰好帮你把这些事做了,然后才能安装lz的软件。
15年前在国内的外包公司用InstallShield打包了一年 从此发誓再也不碰Windows打包

评分

参与人数 1大米 +1 收起 理由
paperyfish + 1 赞一个

查看全部评分

回复

使用道具 举报

全局:
动态库是 share 的 所以很多软件可能 share一个lib 这也为什么需要另外安装 如果你bundle到自己的软件里了 那就不叫动态库了 所以你想要做的其实就是全部用静态链接库
回复

使用道具 举报

全局:
C++不像java一样有maven
所以一般会自己公司维护一个依赖服务器吧?
因为有时候c++的依赖容易变的十分messy
回复

使用道具 举报

🔗
FightForLife 2020-9-12 06:35:31 | 只看该作者
全局:
建议search 一下shared library vs static library和你executable的关系。

https://medium.com/@StueyGK/stat ... ile%20reusable%20in,outside%20of%20the%20executable%20file.&text=In%20contrast%2C%20a%20dynamic%20library,a%20need%20to%20re%2Dcompile.
回复

使用道具 举报

🔗
uuisafresh 2020-9-12 08:12:28 | 只看该作者
全局:
静态库和动态库的区别吧,静态库所有东西都在可执行文件里,动态库则是需要把动态二进制文件安装去特定路径
回复

使用道具 举报

🔗
 楼主| pengzhao0524 2020-9-12 23:37:10 | 只看该作者
全局:
非常感谢大家的指导!我的程序是在linux上。我去读读推荐的材料。再次感谢!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册账号
隐私提醒:
  • ☑ 禁止发布广告,拉群,贴个人联系方式:找人请去🔗同学同事飞友,拉群请去🔗拉群结伴,广告请去🔗跳蚤市场,和 🔗租房广告|找室友
  • ☑ 论坛内容在发帖 30 分钟内可以编辑,过后则不能删帖。为防止被骚扰甚至人肉,不要公开留微信等联系方式,如有需求请以论坛私信方式发送。
  • ☑ 干货版块可免费使用 🔗超级匿名:面经(美国面经、中国面经、数科面经、PM面经),抖包袱(美国、中国)和录取汇报、定位选校版
  • ☑ 查阅全站 🔗各种匿名方法

本版积分规则

>
快速回复 返回顶部 返回列表