草庐IT

upstream_lib

全部标签

C++ 包装器 DLL 到静态 LIB

我有一些在我的项目中使用的静态编译库(.lib),这些库是用C++编写的,同时构建在Windows和Linux上。在我的项目的这些库的入口点,我只使用静态库套件中“主”库中的一两个函数,真的(但我确信这些函数调用套件中其他库中的许多其他函数).理想情况下,我希望拥有一套动态链接库(DLL),它们环绕静态库套件中的每个库;我读过/听说过在Windows(例如VisualStudio2005/2008/2010)上执行此操作的方法是“创建一个包装器DLL”,其中包含一些调用底层静态库函数的公开函数。如果有人能给我一些详细的分步说明,包括一些片段,说明如何在MSVisualStudio200

windows - 是否有适用于 Windows 的 Linux'/lib/ld-linux.so 的开源等效项?

是否有适用于Windows的开源程序提供与Linux相同的功能'/lib/ld‑linux.so.2? 最佳答案 您可能想查看ReactOSproject.他们应该拥有加载DLL的一切,而且它是开源的。 关于windows-是否有适用于Windows的Linux'/lib/ld-linux.so的开源等效项?,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/7094734/

windows - 使用 DEF 文件而不是 LIB 文件链接到 DLL?

我了解到您可以:将.DLL文件转换为.DEF文件,其中包括其导出(编辑:这不适用于许多约定)将.DEF文件转换为.LIB文件,您可以使用该文件链接到DLL为什么(大多数)链接器不能链接到给定仅.DEF文件而不是.LIB文件的DLL? 最佳答案 最终,这里的答案是“因为没有人非常想要它,而且它并没有真正帮助任何事情”。DEF文件是为DLL创建导入库的输入文件。然后,稍后,当另一个链接使用DLL时,importlib本身就是一个输入。importlib从外面看起来很特别,但当你看里面时,它实际上只是一个稍微特殊的库,里面有对象。完全可以

python - Windows XP 上的 Scrapy ImportError : No module named w3lib. html

我刚刚尝试在我的工作电脑上安装和运行scrapy,它运行的是WindowsXP。如果我运行scrapystartprojectmyproject我会得到以下错误:ImportError:Nomodulenamedw3lib.htmlWining:在windowsXP上运行Python/Scrapy真的很麻烦。在linux上,我只运行pipinstallScrapy就可以了,哈哈。 最佳答案 他们似乎忘记列出w3lib和simplejson。后者仅适用于2.6之前的Python版本。这是Distribute的安装程序,以防你没有eas

ruby - 为什么从 RubyInstaller 安装的 ruby​​ 找不到放在 gem/lib 文件夹中的 dll?

我的系统:windows7x64。我已经安装了:来自RubyInstaller(1.8.7)的rubygem安装rakegem安装libxml-ruby--platform=mswin32现在,当我做:require'xml'我收到关于缺少libxml2-2.dll(和libiconv-2.dll)的错误。我可以在“Ruby187\lib\ruby\gems\1.8\gems\libxml-ruby-1.1.4-x86-mswin32-60\lib\”中找到这两个库。当我将它们复制到“Ruby187\bin”文件夹时,一切正常。但是……如果我从旧的OneClick安装程序安装ruby​

windows - libfoo.a 和 foo.lib 是兼容格式吗?

一些构建脚本(例如numpy中的脚本)只需执行以下操作即可使gcc编译的库存档与VisualStudio链接器一起工作:copylibfoo.afoo.lib令人惊讶的是它似乎有效。有谁知道为什么吗? 最佳答案 取决于几个因素,它可能会或可能不会工作-并且有几个原因。我认为你的意思是完全的、可逆的兼容性。对于用于将DLL绑定(bind)到可执行文件的implib,答案是否。我曾经尝试将MSVC++implib与gcc生成的dll链接起来。如果格式是兼容的,那么当我重命名库libfoo.a时它会起作用。为了解决这个问题,有一个名为re

c++ - comsupp(w).lib 在哪里?

我正在尝试编译一些COM代码,示例here.我的编译很好,但链接有关ConvertStringtoBSTR丢失的投诉。经过一些研究,我发现该符号应该在comsupp.lib中。问题是我在WindowsSDK中找不到这个库...库或函数在哪里? 最佳答案 只需复制@HansPassant的评论,即可使评论成为答案。不是想窃取他的答案,只是想让人们知道这个问题有答案。它不是一个SDK文件,它是一个VisualStudio文件。存放在vc/lib目录下。需要VS许可证。–HansPassant2012年2月25日19:09

windows - 为什么在链接到 .lib 后会出现缺少 dll 的错误?

我从1999年开始研究这个Windows程序。我无法在VisualStudio中构建它,因为它一直给我关于缺少符号的链接器错误。然后我的同事告诉我尝试从原始项目中获取.lib文件并尝试将它们指定为附加链接依赖项。我做到了,程序链接良好。当我尝试运行它时,它提示缺少dll文件。所以我找到了在一些旧计算机上运行的Windows程序的现有副本,复制了dll文件,我的构建开始工作了!这是我一生中最快乐的一天,但我不太清楚发生了什么。谁能简单解释一下什么是Windows中的lib文件以及它们与dll的关系? 最佳答案 .LIB文件在Windo

windows - 为什么在 Windows SDK 中找不到 cfgmgr32.lib?

我正在尝试使用配置管理器API,例如CM_Get_Device_ID.文档说要链接到cfgmgr32.lib。但是,当我这样做时,我从链接器收到一条错误消息:Error1errorLNK1104:cannotopenfile'cfgmgr32.lib'我在WindowsSDK的任何地方都找不到cfgmgr32.lib。如果我遗漏了cfgmgr32.lib,我会得到Unresolvedexternalsymbol错误。如何使用配置管理器API? 最佳答案 如果您使用的WindowsSDK版本不包含cfgmgr32.lib,您应该链接到

c++ - "LNK1104 Cannot open file ' kernel32.lib ' "当 Windows SDK 版本设置为 15063.13 时

我在VisualStudio2017中使用C++,最近刚刚将Windows10从周年更新更新为创作者更新。无意中发现,在编译DLL项目时,会出现错误信息:LNK1104-无法打开文件“kernel32.lib”在项目属性中稍微调整了一下后,我注意到如果将WindowsSDK版本从10.0.14393.0设置为10.0.15063.0,则会出现错误消息。如果我将它设置回10.0.14393.0,我可以正常编译。我想知道为什么当WindowsSDK版本设置为Creator'sUpdate构建版本时,会抛出此错误消息,但如果设置回AnniversaryUpdate构建版本则不会?谢谢。