前提:我希望我的C++应用程序不依赖于任何Microsoft Visual C++ redistributable
,所以我可以发布我的可执行文件,这些文件可以直接使用。如何静态构建和链接LuaJIT(VS 2013)
我已经先进行:(?,不应该VS 2013需要120版本,因为它是编译器版本),以避免msvcr110.dll
需要切换运行时库Multithread (/MT)
从DLL Multithread (/MD)
。要做到这一点,我还必须重新编译我正在使用相同的运行时库,并工作的另一个库。我有我的.exe可以在任何地方运行没有问题(或者我不知道,哈哈)。
然后我添加了一些使用LuaJIT的功能。我已经通过软件包提供的msvcbuild.bat
构建了LuaJIT,它的工作方式就像一个魅力,但现在我的可执行文件需要运行msvcr110.dll
。我想这是因为LuaJIT是用/ MD标志编译的,但我想知道是否有正确的方法来做我想要的。
你需要在运行时加载Lua/C模块..? – NREZ
@NREZ这是我第一次使用Lua,目前我只用它来执行一些基本脚本。所以我想我不需要它(我已经阅读了作者网站上的警告)。 –
好吧,这很酷。事情是,如果你静态链接它,你将不会面临任何依赖性问题,如果你仍然这样做,那么你可以使用这个很酷的工具,名为[Dependency Walker](http://www.dependencywalker.com/),它可以帮助你排序出来。始终确保你在'Release'中编译其他库。虽然有时你可能会遇到这种情况,当你强制需要包含一些.dll文件时,你可以通过创建安装文件并将它包含在你的安装中来添加它们,但每个人都这样做。在获得关于它的更多信息方面最好。 – NREZ