我已经阅读了这两个SO问题:Which runtime libraries to ship?和License of runtime libraries included in GCC? - 这两个都非常有帮助,但不是我所期待的。发货运行时库/ DLL的要求
我一直只是写自己的机器上使用的程序,它从来没有造成任何问题,但现在我想开始在其他机器上运行软件,并对运行时要求保持警惕。
编辑:请参阅下面的例子,而这是误导。
具体来说,如果我写在Windows机器上的C++程序,通过MinGW的GCC编译,并想在另一台机器上运行它:
我一定要送的libstdC++。与我的程序的DLL?这个单个文件(我假设放在可执行文件的目录中)足以让程序运行吗?
此外,一个相同的例子,除了这次是一个Objective-C程序。将libobjc.dll文件发送到其他计算机是否足以允许程序正确执行?
我习惯于在安装了开发工具等的机器上运行程序,但现在我正在寻找在通用机器(朋友,同事等)上运行它们,而我并不完全确定要做什么!
编辑:针对大厦的回答,我觉得我应该澄清这就是我要找的。我知道如何识别我的程序使用的必要DLL(/ dylib等)(尽管我习惯于手动完成这项工作;但我没有听说过任何工具)。我的问题是“我现在做什么?”
可能是需要的更一般的例子:
比方说,我已经写,其具有从对象C++,C和/或目的-C(2)代码导出文件的程序。我使用了一些使用MinGW的gcc成功编译的Windows API代码。我也有一个我在Visual Studio(C++)中编写的自定义DLL。
我已经确定了我的程序将在运行时使用哪个DLL(其中一个可能是GCC的libobjc.dll,我不确定这是否会在Windows计算机上产生差异,但是我想使它成为尽可能一般) - “先决条件DLL”。
我想在我的同事的电脑,其中大部分运行Windows 7上运行,但现在的一些运行Windows 8在为完整起见劈头开始:
- 我需要将先决条件DLL转移到我的同事的计算机上?
- 我应该把他们放在什么目录? (exe目录/系统目录?)
- 一旦到位,这些DLL的存在是否允许程序正确执行? (假设它知道在哪里可以找到它们)
- 是否有任何其他文件应该与DLL一起传输?
基本上我试图根据系统运行时需求来确定在另一台机器上开发和运行应用程序的整个思考过程。
对于win8商店应用程序看到这个.. http://blogs.msdn.com/b/vcblog/archive/2012/09/28/10354327.aspx –