C ++中的自动链接库如何工作?

时间:2015-10-08 06:51:09

标签: visual-c++ dll linker comments pragma

我正在尝试自动链接以下库。我从来没有使用自动链接功能,也不确定它是如何工作的。根据我的研究,这应该有效。当我将dll包含在除SDL库之外的项目中时,我会收到以下错误: https://i.gyazo.com/e49a636ddad428fa48acdee78c930293.png

使自动链接工作的步骤是什么?我不需要为此指定某种路径吗?是否必须按特定顺序?

此代码位于DLL中:

#include <SDL.h>
#include <SDL_image.h>
#include <SDL_mixer.h>
#include <SDL_ttf.h>

#pragma comment(lib, "SDL2.lib")
#pragma comment(lib, "SDL2main.lib")
#pragma comment(lib, "SDL2_image.lib")
#pragma comment(lib, "SDL2_mixer.lib")
#pragma comment(lib, "SDL2_ttf.lib")

感谢您抽出宝贵时间回答。

2 个答案:

答案 0 :(得分:0)

您尚未明确指定您正在使用的平台或开发环境,但您似乎正在使用最新版本的Visual Studio。您需要配置&#34; VC ++目录&#34;项目中的设置,包括lib文件的路径,在&#34; Library Directories&#34;下。这些pragma指令将指示链接器在这些目录中搜索lib文件。

答案 1 :(得分:0)

编译器抱怨它无法找到标题 sdl.h,它没有进入链接部分(我猜它也会遇到麻烦)。

要解决:

  1. 在此处添加SDL标头的路径:项目属性\ C / C ++ \ General \其他包含目录
  2. 在此处添加导入库的路径:项目属性\ Linker \ General \ Additional Library目录。
  3. 不要使用'VC ++目录' - 顾名思义,它是工具链寻找各种VC组件的地方(crt,mfc,open mp,windows sdk等)。搞清楚这可能导致极难诊断构建失败。