2010-04-27 29 views

回答

1

你给具体的例子恰好是通常通过舱单和并排侧从Visual Studio连接,在建立应用程序时,至少(用正确的项目设置)的DLL。你为什么试图指示编译器通过代码链接它们?

最常用的方式链接到一个特定的DLL是当你有DLL的LIB可用,然后使用该编译

#pragma comment(lib, "<library name>") 
+0

能详细清单是如何组成的? – user198729 2010-04-27 15:02:33

0

诶,你一定要首先了解的DLL /联...... http://www.infernodevelopment.com/how-create-dll-c-using-run-time-dynamic-linking

书面问题不回答的

注:不知道你的意思CMake的是什么,但你可以很容易地在你的CMakeLists.txt文件中指定链接库...的例外是你注意到的DLL,因为它们是重新平台依赖。你需要在CMake脚本中检查MSVC的版本。

为什么要链接到一个较旧的运行时,但Vista和VC9的运行时间,如果有人使用XP,你可以给他们VS2008/2010的'可再发行组件包'。

+0

另外,你能否详细说明如何让'cmake'使用VS2008/2010的'redistributable package'?当你建立 – user198729 2010-04-27 15:14:44

+0

CMake的本身就不需要再发行的包,但你可以有CMake的使用像一个外部工具“Nullsoft脚本安装系统”,形成了用户的安装程序。例如:搜索'opencv',下载安装程序和源代码...您可以尝试使用cmake + source重新创建安装程序。 – 2010-05-26 15:30:27

1

链接时指定.lib文件,并在运行时使用匹配的.dll,因此(例如)如果要使用msvcr70.dll,则需要链接到msvcr70。库。

1

一般情况下,对链接C/C++运行依赖于VisualStudio的版本所使用。 (MSVCR80.DLL - > VS2005,MSVCR90.DLL - > VS2008等)

上是如何工作的一些更深入的了解和一些技巧的工作araoud这个你可以在这个blog post读了。

相关问题