递归火山软件开发平台

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
热搜: 火山 源码 类库
查看: 6019|回复: 14
打印 上一主题 下一主题

[视窗] LIB 所谓的兼容性(指定版本)和需求。你更倾向那个?

[复制链接]

111

主题

608

帖子

2148

积分

金牌会员

Rank: 6Rank: 6

积分
2148
QQ
跳转到指定楼层
楼主
发表于 2022-10-23 17:42:14 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
我发此贴的目的就是想证明。
需求>繁琐

正常情况下来说,在无可奈何、无计可施的情况下,费点事,只要能完美实现预计过程。
一切都是值得的。

如果火山支持编译LIB。好处太大,一言难尽。
当下不支持编译LIB,库的三方收费难以实现。不利于生态。不是每个人都会大公无私的奉献,一直默默的封库。
当前的部件太鸡肋了。始终会生成C++源码。有人会说,能看懂C++源码的都不在这了。哎//仁者见仁。

我觉得可以增加一个限制,参考火山安卓 API版本。
比喻说: @视窗.外部库.外部头文件  "mytest.x64.h"
              @视窗.外部库.x64             "mytest.x64.lib"
              @视窗.外部库.系统需求     "10.1.1.1"    或者   "10.*.*.*"   支持通配符。
单选投票, 共有 10 人参与投票 查看投票参与人

投票已经结束

20.00% (2)
80.00% (8)
您所在的用户组没有投票权限
专业承接18-98岁xx的心理及生理教育辅导。
回复

使用道具 举报

8

主题

54

帖子

900

积分

核心用户

Rank: 9Rank: 9Rank: 9

积分
900
15#
发表于 2022-10-29 11:04:23 | 只看该作者
urenai 发表于 2022-10-28 21:55
我也检查了 Visual Studio Installer 能装的都是14 开头的版本

我是实测过的,因为我现在也是用VS2015封静态lib给火山用的,火山编译用的2019,用到现在也并无问题
简码阁编程学习网:www.eyy168.com
回复

使用道具 举报

310

主题

1411

帖子

5443

积分

核心用户

Rank: 9Rank: 9Rank: 9

积分
5443
QQ
14#
发表于 2022-10-28 21:55:43 | 只看该作者
我也检查了 Visual Studio Installer 能装的都是14 开头的版本
专业承接18-98岁xx的心理及生理教育辅导。
回复

使用道具 举报

310

主题

1411

帖子

5443

积分

核心用户

Rank: 9Rank: 9Rank: 9

积分
5443
QQ
13#
发表于 2022-10-28 21:16:08 | 只看该作者
@飞扬工作室

12楼说的应该是真的,在微软的公开文档中,

  1. Visual Studio 2013 及更早版本中的 Microsoft C++ (MSVC) 编译器工具集不保证主版本间的二进制兼容性。 无法链接由这些工具集的不同版本生成的对象文件、静态库、动态库和可执行文件。 ABI、对象格式和运行时库不兼容。

  2. 我们在 Visual Studio 2015 及更高版本中改变了此行为。 由其中任一版本的编译器编译的运行时库和应用具有二进制兼容性。 这反映在 C++ 工具集主版本号中,对于自 Visual Studio 2015 以来的所有版本,该版本号都以 14 开头。 (对于 Visual Studio 2015、2017、2019 和 2022,工具集版本分别为 v140、v141、v142 和 v143)。 假设你具有 Visual Studio 2015 生成的第三方库。 你仍可在 Visual Studio 2017、2019 或 2022 生成的应用程序中使用它们。无需使用匹配工具集重新编译。 最新版本的 Microsoft Visual C++ 可再发行程序包(可再发行程序包)适用于所有版本。
复制代码
专业承接18-98岁xx的心理及生理教育辅导。
回复

使用道具 举报

8

主题

54

帖子

900

积分

核心用户

Rank: 9Rank: 9Rank: 9

积分
900
12#
发表于 2022-10-25 13:57:08 | 只看该作者
福寿 发表于 2022-10-24 04:54
lib是微软自己搞出来的一个格式,兼容性很差,比如2019生成的,到了2022就不一定可以用,就算你自己生成 ...

目前VS2015向上兼容了.微软官方就写着这个.https://learn.microsoft.com/zh-c ... -2017?view=msvc-170 而且2019编译的Lib静态库2022是可以用的,我这两版本都有用.实测过的.
闭不闭源不说,但自己用C写一些功能,然后火山嵌入调用,就省事的多,编译还不带DLL.我个人是特别不喜欢带DLL的.
简码阁编程学习网:www.eyy168.com
回复

使用道具 举报

310

主题

1411

帖子

5443

积分

核心用户

Rank: 9Rank: 9Rank: 9

积分
5443
QQ
11#
发表于 2022-10-24 10:18:15 来自手机 | 只看该作者
本帖最后由 urenai 于 2022-10-24 10:28 编辑

如果一个类里支持同时存在多个版本lib,并在编译时主动跟随系统VS版本。那就能完美解决问题了。

哦对。。。。
比喻说: @视窗.外部库.外部头文件  "mytest.x64.h"
              @视窗.外部库.x64.1             "mytest.x64.10.1.1.1.lib"
              @视窗.外部库.系统需求.1     "10.1.1.1"    或者   "10.*.*.*"   支持通配符。

             @视窗.外部库.x64.2             "mytest.x64.11.1.1.1.lib"
              @视窗.外部库.系统需求.2     "11.1.1.1"
回复

使用道具 举报

14

主题

466

帖子

2788

积分

核心用户

Rank: 9Rank: 9Rank: 9

积分
2788
10#
发表于 2022-10-24 04:54:14 | 只看该作者
urenai 发表于 2022-10-23 22:22
要区分程序系统要求,

Lib要求

lib是微软自己搞出来的一个格式,兼容性很差,比如2019生成的,到了2022就不一定可以用,就算你自己生成的lib,别人也不一定能用,还不如以源码的形式存在,兼容性强,火山本来就是可以通过不同的编译器来解决误报,指定lib的话就变成指定编译器了
回复

使用道具 举报

310

主题

1411

帖子

5443

积分

核心用户

Rank: 9Rank: 9Rank: 9

积分
5443
QQ
9#
发表于 2022-10-23 22:22:13 来自手机 | 只看该作者
飞扬工作室 发表于 2022-10-23 21:06
这个特性最新升级包已经支持了,可以指定所需求的 vs 版本.

要区分程序系统要求,

Lib要求
回复

使用道具 举报

54

主题

1372

帖子

7629

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
7629
8#
发表于 2022-10-23 21:06:07 | 只看该作者
这个特性最新升级包已经支持了,可以指定所需求的 vs 版本.
回复

使用道具 举报

0

主题

122

帖子

1390

积分

金牌会员

Rank: 6Rank: 6

积分
1390
7#
发表于 2022-10-23 19:37:31 | 只看该作者
生产c++是为了解决误报,否则又回到易语言的老路
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|小黑屋|递归火山软件开发平台 ( 鄂ICP备18029190号 )

GMT+8, 2024-6-17 02:32 , Processed in 0.101624 second(s), 22 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

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