我是否应该将整个库添加到c++; 我对C++很陌生。目前,我正在从事ONNX项目,我有一个问题,如果我必须使我的应用程序可移植(假设将使用它的人没有在他们的机器上安装ONNX),我必须在我的计算机上安装整个库吗 项目文件夹或我应该如何做

我是否应该将整个库添加到c++; 我对C++很陌生。目前,我正在从事ONNX项目,我有一个问题,如果我必须使我的应用程序可移植(假设将使用它的人没有在他们的机器上安装ONNX),我必须在我的计算机上安装整个库吗 项目文件夹或我应该如何做,c++,cmake,static-libraries,C++,Cmake,Static Libraries,感谢您的帮助因此,一个选项是静态链接所有库,这样使用该应用程序的用户就不需要在其计算机上安装特定的库 见本问答: 我建议在这些库可用的地方设置一台CI计算机(或者更好地使用可复制的安装脚本/容器配置)(是的,这代表了一些需要为您设置的工作),然后将构建在这台计算机上的静态链接二进制文件提供给您的客户机(这样对他们来说就不麻烦了) 你会在网上看到关于静态链接二进制文件的潜在兼容性问题以及对exe大小的抱怨(有些人认为-static是邪恶的),但老实说,这种方法对客户端配置的压力最小。我不知道ON

感谢您的帮助

因此,一个选项是静态链接所有库,这样使用该应用程序的用户就不需要在其计算机上安装特定的库

见本问答:

我建议在这些库可用的地方设置一台CI计算机(或者更好地使用可复制的安装脚本/容器配置)(是的,这代表了一些需要为您设置的工作),然后将构建在这台计算机上的静态链接二进制文件提供给您的客户机(这样对他们来说就不麻烦了)


你会在网上看到关于静态链接二进制文件的潜在兼容性问题以及对exe大小的抱怨(有些人认为
-static
是邪恶的),但老实说,这种方法对客户端配置的压力最小。

我不知道ONNX是什么,但通常,您使用的任何框架都将提供用于部署的运行库。在某些情况下,它们甚至可能为您提供预安装了依赖项的docker映像,您可以将应用程序复制到其中,并且应该是完全可移植的。另一个选项是静态链接到您使用的所有内容,这减少了对客户端计算机的要求,基本上,您只需要一个exe,它不需要运行特定的安装/部署文件夹。@YannTM很抱歉,这是我第一次使用这种技术,但我是否可以静态链接库,这样使用我的应用程序的人就不需要在他们的机器上安装特定的库?如果是这样的话,你会这么好,链接这么好吗?