我正在使用Microsoft Visual C ++ 10编译我的程序,它使用PDCurses库。我已将其配置为链接pdcurses.lib,但当我尝试运行该应用程序时,系统会抱怨它找不到“pdcurses.dll”。它不应该抱怨它。我曾经使用MinGW(GCC)编译程序,当我尝试运行应用程序时它并没有问我任何DLL。我能做些什么才能让MSVC静态链接PDCurses?
答案 0 :(得分:5)
在MSVC .lib
文件中可以采用两种形式:
前者可用于使您的应用程序知道DLL中的导出入口点,然后将其写入PE文件的导入目录(或者用于延迟加载导入的另一个类似位置)。
然而,后者实际上将每个引用函数包含的代码链接到最终二进制文件中。这是你想要的,但你可能必须自己从源代码构建那个静态库,如果你想要链接的库的版本没有提供它。
但是,还有另一种可能性:您可能只是为链接器传递错误的目录以查找.lib
文件。在这种情况下,您将链接导入库而不是静态库。确保检查构建日志中是否有使用的路径。但是,这仅适用于库的分发包含两种类型的库。
答案 1 :(得分:-4)
dll需要在路径中。