phö*_*hön 0 c++ linker static visual-studio
我想从pcap文件中读取并使用winpcap libary(http://www.winpcap.org/).下载后我安装了它(因此我认为他们的dll被复制到我的系统正在搜索它们的某个地方).我想STATIC链接libary到我的项目,因为我不想每次在另一台计算机上添加winpcap dll(如果计算机安装了winpcap我也不会有问题).
在visual studio中,我添加了headerfiles和libary路径的include路径.然后我将libarys"libwpcap.a"和"libpacket.a"添加到其他依赖项中.(目录中还有文件"wpcap.lib"和"packet.lib",我认为它们用于动态链接?).我的代码工作正常,但当我将可执行文件移动到我的其他计算机,我之前没有安装winpcap,它说缺少wpcap.dll ..所以它只是动态链接,我是对的吗?
但这种情况我想阻止.所以我怎么能告诉链接器,他必须将它静态链接..该死的我现在正在寻找它.但我不知道我做错了什么:(想.a文件得到静态链接和.lib文件用于动态链接.
在使用VS在Windows上进行链接时,让我们分开三种模式:
模式#1和#3的.lib文件是不同的.创建哪个文件取决于库的创建者为其构建项目的设置:如果是"静态库",将创建一个完整的.lib文件.如果是"动态库",将创建存根.lib文件和.dll文件.如果使用存根.lib文件,则可执行文件将需要运行时可用的.dll文件.
解决您的问题:如果您下载的发行版中没有完整的.lib文件,您可以下载完整的WinPCap源代码(可从他们的网站获得)并自行构建为静态库.
但请注意,许可证可能不允许您这样做.我不知道 - 你应该自己检查一下.
另见: