是否有一种在windows上分发C/C++开发包(无源代码)的首选规范方式
Is there a preferred canonical way to distribute C/C++ development packages (without source) on windows?
是否有一种首选的规范方式将开发包(例如DLL和头文件)分发给windows上的开发人员(没有源文件)?
来自Linux背景,我更喜欢将一个项目分为三个包:
- 运行时-例如包含
/opt/foo/lib/libbar.so -> /opt/foo/lib/libbar.so.1.2.3
的libfoo-1.2.3.rpm
- 一个开发包,例如包含
/opt/foo/include/bar.h
的libfoo-devel.1.2.3.rpm
- 源代码包,例如
libfoo.1.2.3-src.tgz
,包含源代码和构建机制
如果给一个具有类似目录布局的zip文件,我预计很少有windows开发人员会抱怨。例如
foo-devel.zip:
foo/doc/foobar.pdf
foo/include/bar.h
foo/lib/libbar.dll
foo/lib/libbar.lib
仅为了完整性(脱离主题),运行时可能是:
foo-runtime.zip:
foo/doc
foo/lib/libbar.dll
或:
foo-runtime.msi
-将libbar.dll
安装到适当的位置
然而,我仍然很好奇,是否真的有首选的方式?
例如,您是否应该提供要安装在构建机器上的foo-devel.msi?
我对什么东西应该进图书馆这个问题不感兴趣。任何人都可以看到例如在windows 上分发(本机C++)库
如果提供C++接口而不是仅提供C接口,那么仍然值得记住ABI兼容性问题。
另一个相关的问题是,是否有分发Windows本机C库的最佳实践指南?。这个问题涵盖了什么,但这个问题问如何。
在Windows上分发可再分发文件的规范(在一定程度上)方式是Windows安装程序合并模块(msm)。它打算集成到另一个Windows安装程序(msi)包中。DLL应该放在那里,因为它们是运行时需要的文件。
至于开发文件(例如头文件、库等),在Windows上的文件系统中没有标准的组织方式。因此,它可以是一个简单的归档文件或msi包。对于msi包,不需要管理员帐户来安装它是有意义的。
相关文章:
- 在Linux中哪里可以找到互斥、未来等的源代码
- 如果编译的源代码是特定于它编译的硬件的,我们如何分发它
- 使用cmake从源代码构建MySQL连接器/C++失败(与以前的声明冲突)
- 难以理解某些人解决IOI问题的源代码
- 使用g++编译hdf5源代码
- 如何使用C++读取另一个程序中的源代码输出
- Poco FindMySql.cmake 无法找到 MySQL 源代码
- 更改命令行 qt5 源代码构建配置的正确/快速方法
- C++出现控制台错误.我无法识别源代码的问题
- Qt Quick,如何更改 Ui 源代码?
- 使用 Git 处理 C++ Visual Studio 2019 解决方案的外部依赖项源代码管理的最佳方法是什么?
- 从macOS Catalina上的源代码编译LLVM(如何解决未找到"stdio.h")
- 如何使用QT创建器获取网页源代码?
- 从源代码构建 gRPC C++
- 如何使用我构建的库,而不会从源代码出错,但不为我自己的项目编译?
- 如何在使用 LLVM 编译时获取部分源代码的二进制代码
- 如何在源代码中包含外部库的头文件?
- 随机自动点击器C++使用一个键进行开/关
- 是否有一种在windows上分发C/C++开发包(无源代码)的首选规范方式
- 如何在不安装开发包的情况下获得OpenGL标题