具有调试配置的GLFW控制台项目中的LNK4099

时间:2011-11-25 21:53:05

标签: visual-c++ opengl linker pdb-files glfw

在Visual Studio 2010 SP1中使用GLFW编译win32控制台项目时,我收到以下警告以进行调试配置:

Warnung 1   warning LNK4099: PDB "vc100.pdb" wurde nicht mit "GLFW.lib(enable.obj)" oder an "C:\path-to-project with-spaces\World\Debug\vc100.pdb" gefunden; Objekt wird verknüpft, als ob keine Debuginformationen vorhanden wären.    C:\path-to-project with-spaces\World\World\GLFW.lib(enable.obj) World

另外13个GLFW.lib(enable.obj),GLFW.lib(glext.obj),GLFW.lib(image.obj),GLFW.lib(init.obj),GLFW.lib(input.obj) ,GLFW.lib(stream.obj),GLFW.lib(tga.obj),GLFW.lib(win32_enable.obj),GLFW.lib(win32_fullscreen.obj),GLFW.lib(win32_glext.obj),GLFW.lib( win32_init.obj),GLFW.lib(win32_time.obj),GLFW.lib(win32_window.obj),GLFW.lib(window.obj)

最后但并非最不重要:

Fehler  15  error LNK1104: Datei "C:\path-to-project with-spaces\World\Debug\World.exe" kann nicht geöffnet werden. C:\path-to-project with-spaces\World\World\LINK World

正在编译发布配置。这可能仍然不足以解决我的问题,但我希望能解释为什么会发生这种情况。

3 个答案:

答案 0 :(得分:1)

我不知道警告/错误在说什么,因为我不知道任何德语,但一般来说,如果有什么编译/链接发布而不是调试(反之亦然),这意味着你要链接到错误的库不适用于那个。是否有针对GLFW库的特定调试库(.dll或.lib)?有时您必须告诉VS使用一个用于项目的发布配置,而另一个用于项目的调试配置。检查glfw.lib和glfw_d.lib之类的东西,其中_d表示调试库。

或者,如果您能提供链接警告/错误的英文翻译,我可能会提供更多帮助。

祝你好运!

答案 1 :(得分:0)

我已经使用正确的lib进行调试配置,但不仅链接到GLFW.lib,还链接到GLFWDLL.lib。您可以使用GLFW.libGLFW编译为可执行文件,也可以通过链接到GLFWDLL.lib来使用DLL。我不小心做了两件事。

的其他信息
  

4.2与正确的图书馆链接

当前GLFW 2.7 Release Notes中的

答案 2 :(得分:0)

每当使用VC ++构建项目失败时,最好使用错误代码查询MSDN。在您的情况下http://msdn.microsoft.com/en-en/library/b7whw3f3(v=vs.80).aspx

  

链接器工具警告LNK4099未找到PDB“文件名”   '对象/图书馆'或'路径';链接对象就像没有调试信息一样   链接器无法找到您的.pdb文件。将其复制到目录中   包含对象/库。

     

要查找与目标文件关联的.pdb文件的名称:

     
      
  1. 使用lib从库中提取目标文件   /extract:objectname.obj xyz.lib。

  2.   
  3. 使用dumpbin /section:.debug$T检查.pdb文件的路径   / rawdata objectname.obj。

  4.         

    您也可以使用/ Z7进行编译,因此不需要使用pdb,   如果没有.pdb文件,请删除/ DEBUG链接器选项   你要链接的对象。