精华内容
下载资源
问答
  • 解决LNK2001和LNK1120的一种可能的办法
    2022-03-23 16:19:54

    我是因为int s[ ]时中括号里没有加数值。

    更多相关内容
  • 解决报错Error LNK2001:unresolved external symbol
  • visual c++报error LNK2001 unresolved external symbol错就是因为你...
  • 解决error LNK2001 无法解析的外部符号 int __cdecl sprintf
  • 对于编程人员在编译程序的时候经常会遇到error LNK1120和error lnk2001这问题,跟大家分享一下自己找到的资料,以及自己遇到的问题,希望对大家有帮助。
  • 解决error LNK2001: unresolved external symbol
  • vc6.0 LNK2001错误原因及改正方法

    千次阅读 2021-05-20 02:58:25
    学习VC++时经常会遇到链接错误LNK2001,该错误非常讨厌,因为对于编程者来说,最好改的错误莫过于编译错误,而一般说来发生连接错误时,编译都已通过。产生连接错误的原因非常多,尤其LNK2001错误,常常使人不明其...

    学习VC++时经常会遇到链接错误LNK2001,该错误非常讨厌,因为对于编程者来说,最好改的错误莫过于编译错误,

    而一般说来发生连接错误时,编译都已通过。产生连接错误的原因非常多,尤其LNK2001错误,常常使人不明其所以然。

    如果不深入地学习和理解VC++,要想改正连接错误LNK2001非常困难。

    初学者在学习VC++的过程中,遇到的LNK2001错误的错误消息主要为:

    unresolved external symbol “symbol”(不确定的外部“符号”)。

    如果连接程序不能在所有的库和目标文件内找到所引用的函数、变量或标签,将产生此错误消息。

    一般来说,发生错误的原因有两个:一是所引用的函数、变量不存在、拼写不正确或者使用错误;

    其次可能使用了不同版本的连接库。

    以下是可能产生LNK2001错误的原因:

    一.由于编码错误导致的LNK2001

    1.不相匹配的程序代码或模块定义(.DEF)文件能导致LNK2001。例如,

    如果在C++源文件内声明了一变量“var1”,

    却试图在另一文件内以变量“VAR1”访问该变量,将发生该错误。

    2.如果使用的内联函数是在.CPP文件内定义的,而不是在头文件内定义将导致LNK2001错误。

    3.调用函数时如果所用的参数类型同函数声明时的类型不符将会产生LNK2001。

    4.试图从基类的构造函数或析构函数中调用虚拟函数时将会导致LNK2001。

    5.要注意函数和变量的可公用性,只有全局变量、函数是可公用的。静态函数和静态变量具有相同的使用范围限制。

    当试图从文件外部访问任何没有在该文件内声明的静态变量时将导致编译错误或LNK2001。

    函数内声明的变量(局部变量) 只能在该函数的范围内使用。

    C++ 的全局常量只有静态连接性能。这不同于C,如果试图在C++的多个文件内使用全局变量也会产生LNK2001错误。

    一种解决的方法是需要时在头文件中加入该常量的初始化代码,并在.CPP文件中包含该头文件;另一种方法是使用时给该变量赋以常数。

    二.由于编译和链接的设置而造成的LNK2001

    1.如果编译时使用的是/NOD(/NODEFAULTLIB)选项,程序所需要的运行库和MFC库在连接时由编译器写入目标文件模块,

    但除非在文件中明确包含这些库名,否则这些库不会被链接进工程文件。在这种情况下使用/NOD将导致错误LNK2001。

    2.如果没有为wWinMainCRTStartup设定程序入口,在使用Unicode和MFC时将得到“unresolved

    external on _WinMain@16”的LNK2001错误信息。

    3.使用/MD选项编译时,既然所有的运行库都被保留在动态链接库之内,源文件中对“func”的引用,在目标文件里即对“__imp__func”

    的引用。

    如果试图使用静态库LIBC.LIB或LIBCMT.LIB进行连接,将在__imp__func上发生LNK2001;如果不使用/MD选项编

    译,在使用MSVCxx.LIB连接时也会发生LNK2001。

    4.使用/ML选项编译时,如用LIBCMT.LIB链接会在_errno上发生LNK2001。

    5.当编译调试版的应用程序时,如果采用发行版模态库进行连接也会产生LNK2001;同样,使用调试版模态库连接发行版应用程序时也会产生相同的问题。

    6.不同版本的库和编译器的混合使用也能产生问题,因为新版的库里可能包含早先的版本没有的符号和说明。

    编程时打开了函数内联(/Ob1或/Ob2),但是在描述该函数的相应头文件里却关闭了函数内联(没有inline关键字),这时将得到该错误信息。

    为避免该问题的发生,应该在相应的头文件中用inline关键字标志内联函数。

    8.不正确的/SUBSYSTEM或/ENTRY设置也能导致LNK2001。

    解决方法:

    解决外部符号错误:_main,_WinMain@16,__beginthreadex

    在创建MFC项目时, 不使用MFC AppWizard向导, 就会在编译时产生很多连接错误, 如error LNK2001错误, 典型的错误提示有:

    libcmtd.lib(crt0.obj) : error LNK2001: unresolved external symbol

    _main

    LIBCD.lib(wincrt0.obj) : error LNK2001: unresolved external symbol

    _WinMain@

    msvcrtd.lib(crtexew.obj) : error LNK2001: unresolved external

    symbol _WinMain@

    nafxcwd.lib(thrdcore.obj) : error LNK2001: unresolved external

    symbol __beginthreadex

    nafxcwd.lib(thrdcore.obj) : error LNK2001: unresolved external

    symbol __endthreadex

    1. Windows子系统设置错误, 提示:

    libcmtd.lib(crt0.obj) : error LNK2001: unresolved external symbol

    _main

    Windows项目要使用Windows子系统, 而不是Console, 可以这样设置:

    [Project] --> [Settings] --> 选择"Link"属性页, 在Project

    Options中将/subsystem:console改成/subsystem:windows 2. Console子系统设置错误, 提示:

    LIBCD.lib(wincrt0.obj) : error LNK2001: unresolved external symbol

    _WinMain@控制台项目要使用Console子系统, 而不是Windows, 设置:

    [Project] --> [Settings] --> 选择"Link"属性页

    3. 程序入口设置错误, 提示:

    msvcrtd.lib(crtexew.obj) : error LNK2001: unresolved external

    symbol _WinMain@通常, MFC项目的程序入口函数是WinMain,

    如果编译项目的Unicode版本, 程序入口必须改为wWinMainCRTStartup, 所以需要重新设置程序入口:

    [Project] --> [Settings] --> 选择"Link"属性页,

    在Category中选择Output, 再在Entry-point symbol中填入wWinMainCRTStartup,

    即可

    4. 线程运行时库设置错误, 提示:nafxcwd.lib(thrdcore.obj) : error LNK2001:

    unresolved external symbol __beginthreadex

    nafxcwd.lib(thrdcore.obj) : error LNK2001: unresolved external

    symbol __endthreadex这是因为MFC要使用多线程时库, 需要更改设置:

    [Project] --> [Settings] --> 选择"C/C++"属性页, 在Category中选择Code

    Generation,再在Use run-time library中选择Debug Multithreaded

    或者multithreaded

    其中,

    Single-Threaded 单线程静态链接库(release版本)

    Multithreaded 多线程静态链接库(release版本)

    multithreaded

    DLL 多线程动态链接库(release版本)

    Debug

    Single-Threaded 单线程静态链接库(debug版本)

    Debug

    Multithreaded 多线程静态链接库(debug版本) )

    Debug Multithreaded

    DLL 多线程动态链接库(debug版本)

    单线程: 不需要多线程调用时, 多用在DOS环境下

    多线程: 可以并发运行

    静态库: 直接将库与程序Link, 可以脱离MFC库运行

    动态库: 需要相应的DLL动态库, 程序才能运行

    release版本: 正式发布时使用

    debug版本: 调试阶段使用

    展开全文
  • 这里写自定义目录标题生成open3d项目报错:error LNK2001: 无法解析的外部符号 __imp_glViewport问题解决方法合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个...

    生成open3d项目报错:error LNK2001: 无法解析的外部符号 __imp_glViewport

    问题

    已启动生成…
    1>------ 已启动生成: 项目: Radar_Calculation, 配置: Release x64 ------
    1>stdafx.cpp
    1>Radar_Calculation.cpp
    1> 正在创建库 D:\CargoProjectCode\shijueC++\Radar_Calculation\x64\Release\Radar_Calculation.lib 和对象 D:\CargoProjectCode\shijueC++\Radar_Calculation\x64\Release\Radar_Calculation.exp
    1>Open3D.lib(ViewControl.obj) : error LNK2001: 无法解析的外部符号 __imp_glViewport
    1>Open3D.lib(RGBDImageShader.obj) : error LNK2001: 无法解析的外部符号 __imp_glViewport
    1>Open3D.lib(VisualizerRender.obj) : error LNK2001: 无法解析的外部符号 __imp_glBindTexture
    1>Open3D.lib(VisualizerWithEditing.obj) : error LNK2001: 无法解析的外部符号 __imp_glBindTexture
    1>Open3D.lib(VisualizerWithVertexSelection.obj) : error LNK2001: 无法解析的外部符号 __imp_glBindTexture
    1>Open3D.lib(ImageMaskShader.obj) : error LNK2001: 无法解析的外部符号 __imp_glBindTexture
    1>Open3D.lib(ImageShader.obj) : error LNK2001: 无法解析的外部符号 __imp_glBindTexture
    1>Open3D.lib(RGBDImageShader.obj) : error LNK2001: 无法解析的外部符号 __imp_glBindTexture
    1>Open3D.lib(TexturePhongShader.obj) : error LNK2001: 无法解析的外部符号 __imp_glBindTexture
    1>Open3D.lib(TextureSimpleShader.obj) : error LNK2001: 无法解析的外部符号 __imp_glBindTexture
    1>Open3D.lib(VisualizerRender.obj) : error LNK2001: 无法解析的外部符号 __imp_glDeleteTextures
    1>Open3D.lib(ImageMaskShader.obj) : error LNK2001: 无法解析的外部符号 __imp_glDeleteTextures
    1>Open3D.lib(ImageShader.obj) : error LNK2001: 无法解析的外部符号 __imp_glDeleteTextures
    1>Open3D.lib(RGBDImageShader.obj) : error LNK2001: 无法解析的外部符号 __imp_glDeleteTextures
    1>Open3D.lib(TexturePhongShader.obj) : error LNK2001: 无法解析的外部符号 __imp_glDeleteTextures
    1>Open3D.lib(TextureSimpleShader.obj) : error LNK2001: 无法解析的外部符号 __imp_glDeleteTextures
    1>Open3D.lib(Simple2DShader.obj) : error LNK2001: 无法解析的外部符号 __imp_glDisable
    1>Open3D.lib(VisualizerRender.obj) : error LNK2001: 无法解析的外部符号 __imp_glDisable
    1>Open3D.lib(VisualizerWithEditing.obj) : error LNK2001: 无法解析的外部符号 __imp_glDisable
    1>Open3D.lib(VisualizerWithVertexSelection.obj) : error LNK2001: 无法解析的外部符号 __imp_glDisable
    1>Open3D.lib(ImageMaskShader.obj) : error LNK2001: 无法解析的外部符号 __imp_glDisable
    1>Open3D.lib(SimpleBlackShader.obj) : error LNK2001: 无法解析的外部符号 __imp_glDisable
    1>Open3D.lib(SimpleShader.obj) : error LNK2001: 无法解析的外部符号 __imp_glDisable
    1>Open3D.lib(TexturePhongShader.obj) : error LNK2001: 无法解析的外部符号 __imp_glDisable
    1>Open3D.lib(TextureSimpleShader.obj) : error LNK2001: 无法解析的外部符号 __imp_glDisable
    1>Open3D.lib(ImageShader.obj) : error LNK2001: 无法解析的外部符号 __imp_glDisable
    1>Open3D.lib(NormalShader.obj) : error LNK2001: 无法解析的外部符号 __imp_glDisable
    1>Open3D.lib(PhongShader.obj) : error LNK2001: 无法解析的外部符号 __imp_glDisable
    1>Open3D.lib(RGBDImageShader.obj) : error LNK2001: 无法解析的外部符号 __imp_glDisable
    1>Open3D.lib(ImageMaskShader.obj) : error LNK2001: 无法解析的外部符号 __imp_glDrawArrays
    1>Open3D.lib(PickingShader.obj) : error LNK2001: 无法解析的外部符号 __imp_glDrawArrays
    1>Open3D.lib(Simple2DShader.obj) : error LNK2001: 无法解析的外部符号 __imp_glDrawArrays
    1>Open3D.lib(SimpleBlackShader.obj) : error LNK2001: 无法解析的外部符号 __imp_glDrawArrays
    1>Open3D.lib(SimpleShader.obj) : error LNK2001: 无法解析的外部符号 __imp_glDrawArrays
    1>Open3D.lib(TexturePhongShader.obj) : error LNK2001: 无法解析的外部符号 __imp_glDrawArrays
    1>Open3D.lib(TextureSimpleShader.obj) : error LNK2001: 无法解析的外部符号 __imp_glDrawArrays
    1>Open3D.lib(ImageShader.obj) : error LNK2001: 无法解析的外部符号 __imp_glDrawArrays
    1>Open3D.lib(NormalShader.obj) : error LNK2001: 无法解析的外部符号 __imp_glDrawArrays
    1>Open3D.lib(PhongShader.obj) : error LNK2001: 无法解析的外部符号 __imp_glDrawArrays
    1>Open3D.lib(RGBDImageShader.obj) : error LNK2001: 无法解析的外部符号 __imp_glDrawArrays
    1>Open3D.lib(VisualizerRender.obj) : error LNK2001: 无法解析的外部符号 __imp_glGenTextures
    1>Open3D.lib(VisualizerWithEditing.obj) : error LNK2001: 无法解析的外部符号 __imp_glGenTextures
    1>Open3D.lib(VisualizerWithVertexSelection.obj) : error LNK2001: 无法解析的外部符号 __imp_glGenTextures
    1>Open3D.lib(ImageMaskShader.obj) : error LNK2001: 无法解析的外部符号 __imp_glGenTextures
    1>Open3D.lib(ImageShader.obj) : error LNK2001: 无法解析的外部符号 __imp_glGenTextures
    1>Open3D.lib(RGBDImageShader.obj) : error LNK2001: 无法解析的外部符号 __imp_glGenTextures
    1>Open3D.lib(TexturePhongShader.obj) : error LNK2001: 无法解析的外部符号 __imp_glGenTextures
    1>Open3D.lib(TextureSimpleShader.obj) : error LNK2001: 无法解析的外部符号 __imp_glGenTextures
    1>Open3D.lib(VisualizerRender.obj) : error LNK2001: 无法解析的外部符号 __imp_glTexImage2D
    1>Open3D.lib(VisualizerWithEditing.obj) : error LNK2001: 无法解析的外部符号 __imp_glTexImage2D
    1>Open3D.lib(VisualizerWithVertexSelection.obj) : error LNK2001: 无法解析的外部符号 __imp_glTexImage2D
    1>Open3D.lib(ImageMaskShader.obj) : error LNK2001: 无法解析的外部符号 __imp_glTexImage2D
    1>Open3D.lib(ImageShader.obj) : error LNK2001: 无法解析的外部符号 __imp_glTexImage2D
    1>Open3D.lib(RGBDImageShader.obj) : error LNK2001: 无法解析的外部符号 __imp_glTexImage2D
    1>Open3D.lib(TexturePhongShader.obj) : error LNK2001: 无法解析的外部符号 __imp_glTexImage2D
    1>Open3D.lib(TextureSimpleShader.obj) : error LNK2001: 无法解析的外部符号 __imp_glTexImage2D
    1>Open3D.lib(VisualizerRender.obj) : error LNK2001: 无法解析的外部符号 __imp_glTexParameteri
    1>Open3D.lib(VisualizerWithEditing.obj) : error LNK2001: 无法解析的外部符号 __imp_glTexParameteri
    1>Open3D.lib(VisualizerWithVertexSelection.obj) : error LNK2001: 无法解析的外部符号 __imp_glTexParameteri
    1>Open3D.lib(ImageMaskShader.obj) : error LNK2001: 无法解析的外部符号 __imp_glTexParameteri
    1>Open3D.lib(ImageShader.obj) : error LNK2001: 无法解析的外部符号 __imp_glTexParameteri
    1>Open3D.lib(RGBDImageShader.obj) : error LNK2001: 无法解析的外部符号 __imp_glTexParameteri
    1>Open3D.lib(TexturePhongShader.obj) : error LNK2001: 无法解析的外部符号 __imp_glTexParameteri
    1>Open3D.lib(TextureSimpleShader.obj) : error LNK2001: 无法解析的外部符号 __imp_glTexParameteri
    1>Open3D.lib(TexturePhongShader.obj) : error LNK2001: 无法解析的外部符号 __imp_glDepthFunc
    1>Open3D.lib(TextureSimpleShader.obj) : error LNK2001: 无法解析的外部符号 __imp_glDepthFunc
    1>Open3D.lib(PickingShader.obj) : error LNK2001: 无法解析的外部符号 __imp_glDepthFunc
    1>Open3D.lib(Simple2DShader.obj) : error LNK2001: 无法解析的外部符号 __imp_glDepthFunc
    1>Open3D.lib(NormalShader.obj) : error LNK2001: 无法解析的外部符号 __imp_glDepthFunc
    1>Open3D.lib(PhongShader.obj) : error LNK2001: 无法解析的外部符号 __imp_glDepthFunc
    1>Open3D.lib(SimpleBlackShader.obj) : error LNK2001: 无法解析的外部符号 __imp_glDepthFunc
    1>Open3D.lib(SimpleShader.obj) : error LNK2001: 无法解析的外部符号 __imp_glDepthFunc
    1>Open3D.lib(VisualizerWithVertexSelection.obj) : error LNK2001: 无法解析的外部符号 __imp_glEnable
    1>Open3D.lib(ImageMaskShader.obj) : error LNK2001: 无法解析的外部符号 __imp_glEnable
    1>Open3D.lib(PickingShader.obj) : error LNK2001: 无法解析的外部符号 __imp_glEnable
    1>Open3D.lib(TexturePhongShader.obj) : error LNK2001: 无法解析的外部符号 __imp_glEnable
    1>Open3D.lib(TextureSimpleShader.obj) : error LNK2001: 无法解析的外部符号 __imp_glEnable
    1>Open3D.lib(VisualizerRender.obj) : error LNK2001: 无法解析的外部符号 __imp_glEnable
    1>Open3D.lib(VisualizerWithEditing.obj) : error LNK2001: 无法解析的外部符号 __imp_glEnable
    1>Open3D.lib(NormalShader.obj) : error LNK2001: 无法解析的外部符号 __imp_glEnable
    1>Open3D.lib(PhongShader.obj) : error LNK2001: 无法解析的外部符号 __imp_glEnable
    1>Open3D.lib(SimpleBlackShader.obj) : error LNK2001: 无法解析的外部符号 __imp_glEnable
    1>Open3D.lib(SimpleShader.obj) : error LNK2001: 无法解析的外部符号 __imp_glEnable
    1>Open3D.lib(NormalShader.obj) : error LNK2001: 无法解析的外部符号 __imp_glPointSize
    1>Open3D.lib(PhongShader.obj) : error LNK2001: 无法解析的外部符号 __imp_glPointSize
    1>Open3D.lib(SimpleShader.obj) : error LNK2001: 无法解析的外部符号 __imp_glPointSize
    1>Open3D.lib(PickingShader.obj) : error LNK2001: 无法解析的外部符号 __imp_glPointSize
    1>Open3D.lib(TexturePhongShader.obj) : error LNK2001: 无法解析的外部符号 __imp_glPolygonMode
    1>Open3D.lib(TextureSimpleShader.obj) : error LNK2001: 无法解析的外部符号 __imp_glPolygonMode
    1>Open3D.lib(NormalShader.obj) : error LNK2001: 无法解析的外部符号 __imp_glPolygonMode
    1>Open3D.lib(PhongShader.obj) : error LNK2001: 无法解析的外部符号 __imp_glPolygonMode
    1>Open3D.lib(SimpleBlackShader.obj) : error LNK2001: 无法解析的外部符号 __imp_glPolygonMode
    1>Open3D.lib(SimpleShader.obj) : error LNK2001: 无法解析的外部符号 __imp_glPolygonMode
    1>Open3D.lib(TextureSimpleShader.obj) : error LNK2001: 无法解析的外部符号 __imp_glPolygonOffset
    1>Open3D.lib(NormalShader.obj) : error LNK2001: 无法解析的外部符号 __imp_glPolygonOffset
    1>Open3D.lib(PhongShader.obj) : error LNK2001: 无法解析的外部符号 __imp_glPolygonOffset
    1>Open3D.lib(SimpleShader.obj) : error LNK2001: 无法解析的外部符号 __imp_glPolygonOffset
    1>Open3D.lib(TexturePhongShader.obj) : error LNK2001: 无法解析的外部符号 __imp_glPolygonOffset
    1>Open3D.lib(SimpleBlackShader.obj) : error LNK2001: 无法解析的外部符号 __imp_glLineWidth
    1>Open3D.lib(SimpleShader.obj) : error LNK2001: 无法解析的外部符号 __imp_glLineWidth
    1>Open3D.lib(Simple2DShader.obj) : error LNK2001: 无法解析的外部符号 __imp_glLineWidth
    1>Open3D.lib(VisualizerRender.obj) : error LNK2001: 无法解析的外部符号 __imp_glClear
    1>Open3D.lib(VisualizerWithEditing.obj) : error LNK2001: 无法解析的外部符号 __imp_glClear
    1>Open3D.lib(VisualizerWithVertexSelection.obj) : error LNK2001: 无法解析的外部符号 __imp_glClear
    1>Open3D.lib(VisualizerRender.obj) : error LNK2001: 无法解析的外部符号 __imp_glClearColor
    1>Open3D.lib(VisualizerWithEditing.obj) : error LNK2001: 无法解析的外部符号 __imp_glClearColor
    1>Open3D.lib(VisualizerWithVertexSelection.obj) : error LNK2001: 无法解析的外部符号 __imp_glClearColor
    1>Open3D.lib(VisualizerRender.obj) : error LNK2001: 无法解析的外部符号 __imp_glClearDepth
    1>Open3D.lib(VisualizerWithEditing.obj) : error LNK2001: 无法解析的外部符号 __imp_glClearDepth
    1>Open3D.lib(VisualizerWithVertexSelection.obj) : error LNK2001: 无法解析的外部符号 __imp_glClearDepth
    1>Open3D.lib(VisualizerRender.obj) : error LNK2001: 无法解析的外部符号 __imp_glFinish
    1>Open3D.lib(VisualizerWithEditing.obj) : error LNK2001: 无法解析的外部符号 __imp_glFinish
    1>Open3D.lib(VisualizerWithVertexSelection.obj) : error LNK2001: 无法解析的外部符号 __imp_glFinish
    1>Open3D.lib(VisualizerRender.obj) : error LNK2001: 无法解析的外部符号 __imp_glPixelStorei
    1>Open3D.lib(VisualizerRender.obj) : error LNK2001: 无法解析的外部符号 __imp_glReadBuffer
    1>Open3D.lib(VisualizerRender.obj) : error LNK2001: 无法解析的外部符号 __imp_glReadPixels
    1>Open3D.lib(VisualizerWithEditing.obj) : error LNK2001: 无法解析的外部符号 __imp_glReadPixels
    1>Open3D.lib(VisualizerWithVertexSelection.obj) : error LNK2001: 无法解析的外部符号 __imp_glReadPixels
    1>Open3D.lib(VisualizerWithEditing.obj) : error LNK2001: 无法解析的外部符号 __imp_glColorMask
    1>Open3D.lib(VisualizerWithVertexSelection.obj) : error LNK2001: 无法解析的外部符号 __imp_glColorMask
    1>Open3D.lib(ImageMaskShader.obj) : error LNK2001: 无法解析的外部符号 __imp_glBlendFunc
    1>Open3D_3rdparty_glew.lib(glew.obj) : error LNK2001: 无法解析的外部符号 __imp_glGetIntegerv
    1>Open3D_3rdparty_glew.lib(glew.obj) : error LNK2001: 无法解析的外部符号 __imp_glGetString
    1>Open3D_3rdparty_glew.lib(glew.obj) : error LNK2001: 无法解析的外部符号 __imp_wglGetCurrentDC
    1>Open3D_3rdparty_glew.lib(glew.obj) : error LNK2001: 无法解析的外部符号 __imp_wglGetProcAddress
    1>D:\CargoProjectCode\shijueC++\Radar_Calculation\x64\Release\Radar_Calculation.exe : fatal error LNK1120: 27 个无法解析的外部命令
    1>已完成生成项目“Radar_Calculation.vcxproj”的操作 - 失败。
    ========== 生成: 成功 0 个,失败 1 个,最新 0 个,跳过 0 个 ==========

    解决方法

    在VS中“项目”——“属性”——“连接器”——“输入”——“附加依赖项”中添加缺失的库,经过反复检查缺少opengl32.lib,加上生成成功。
    在这里插入图片描述

    展开全文
  • VS编译期间遇到各式各样的链接LNK错误,作一汇总: LNK1120: 1 个无法解析的外部命令 这个问题的原因是有头文件,但是找不到实现。 有两个原因:1.只包含了头文件,只有这个函数的声明,没有包含这个函数的实现...

    VS编译期间遇到各式各样的链接LNK错误,作一汇总:

    LNK1120: 1 个无法解析的外部命令

    这个问题的原因是有头文件,但是找不到实现。
    有两个原因:1.只包含了头文件,只有这个函数的声明,没有包含这个函数的实现(实现一般放在cpp文件中的)。所以只能通过编译,连接不成功。
    2.另一个原因是函数的声明和实现都放在头文件中了,一般要把声明放头文件中,实现放在cpp文件中。这样每个#include该头文件的文件都会有一份该函数的实现,连接的时候,连接器不知道连接哪一个实现,于是报错。

      
     
    LNK2001: 无法解析的外部符号的几种情况
    一般来说,我们引用第三方库时,需要进行指定依赖项配置,若没有进行相关配置,则编译器会出现“LNK2001: 无法解析的外部符号”错误。

    这个是最常见的问题,具体步骤:
    项目、属性、链接器、常规、附加库目录:填写附加依赖库所在目录 分号间隔多项
    项目、属性、链接器、输入、附加依赖项:填写附加依赖库的名字.lib 空格或分号间隔多项

    若已经按照上述步骤进行配置,但编译器还是报错,可能情况如下:

    1.编译lib库和引用lib库平台不一致

    lib库采用的编译平台和引用该lib的工程的编译平不兼容导致的。比如项目采用vs2008编译,而该lib是用2010编译的,亦或者项目采用vs2015平台,而lib是vs2008编译的也可能导致链接失败。

    2.编译lib库和引用lib库选项不一致情况

    1、一个lib库采用“多线程 DLL (/MD)”配置,而另外一个项目采用“多线程(/MT)”编译配置
    2、一个lib库采用“使用 Unicode 字符集”配置,而另外一个项目采用“使用多字节字符集”编译配置
    3、一个lib库采用选择“release 版本 ”配置,而另外一个项目采用选择 “debug 版本 ”编译配置
    4、一个lib库采用“wind32平台 ”配置,而另外一个项目采用“wind64平台 ”编译配置

    3.没有添加指定预编译宏

    在使用curl静态库时,却遇到了编译链接错误:
    1>testcurl.obj : error LNK2001: unresolved external symbol __imp__curl_easy_init
    1>testcurl.obj : error LNK2001: unresolved external symbol __imp__curl_easy_setopt
    1>testcurl.obj : error LNK2001: unresolved external symbol __imp__curl_easy_perform
    1>testcurl.obj : error LNK2001: unresolved external symbol __imp__curl_easy_cleanup

    解决方法是,在自己的项目属性中添加一个预编译宏,CURL_STATICLIB,

    为了避免遇到以上问题建议:

    1、引用第三方库时,确认lib库是否使用相同编译平台
    2、确认编译选项是否一致。比如运行时库和字符集
    3、若需要则添加指定编译宏
    4、添加附加库目录和附加依赖项

     
     
    LNK2005:已经在.obj中定义
    比如:head1.h中定义了全局变量int a = 10;

    在一个类的头文件class.h中包含了头文件head1.h如:include “head1.h”

    于是我将include "head1.h"从class.h中移到了class.cpp中,问题解决。

    分析,因为class.cpp中include “class.h”,class.h中include “head1.h”,发现没,会造成head1.h的重复引用,虽然用pragma等也无法解决,移到class.cpp中,它生成obj文件时,只引用一次,问题解决。
     
      
     
    LNK2019
    导致LNK2019的常见问题:

    (1)未链接的对象文件或包含符号定义的库

    (2)符号声明的拼写不与符号的定义相同

    (3)使用了函数,但类型或参数数目不匹配函数定义

    (4)声明但未定义的函数或变量

    (5) 调用约定是函数声明和函数定义之间的差异

    (6)符号定义在c文件中,但未使用extern C在c++文件中声明

    (7)符号定义为静态,并随后被外部文件引用

    (8)未定义类的静态成员

    (9) 生成依赖项仅定义为解决方案中项目依赖项

    (10)第三方库问题和Vcpkg

    vcpkg 是一种命令行包管理器,可极大简化 Windows 上第三方库的购置与安装。 如果项目要使用第三方库,建议通过 vcpkg 来安装它们。 vcpkg 同时支持开源和专有库。 已测试 vcpkg 公共目录中所有库与 Visual Studio 2015 及 Visual Studio 2017 的兼容性。通过 vcpkg 可以消除或最大程度减少不匹配二进制文件的存在风险及它可能造成的问题。

    常见修改方法:

    a.改为静态CRT

    Configuration Properties->C/C+±>Code Generation->Runtime Library->
    debug版选/MD

    release版选/MT

    b.严重性 代码 说明 项目 文件 行 禁止显示状态

    错误 LNK2019 无法解析的外部符号 WinMain,该符号在函数 “int __cdecl __scrt_common_main_seh(void)” (?__scrt_common_main_seh@@YAHXZ)中被引用。

    WinMain是Win32项目的入口,所以把应用程序改为控制台类型

    考虑可能的原因:
    [0]出现无法解析可能是因为lib文件不正确,比如64位的编译配置,结果使用的是32位的lib包.
    [1]只写了类声明,但还没有写实现类,造成调用时无法解析
    [2]声明和定义没有统一,造成链接不一致,无法解析
    [3]没有在项目属性页的链接器的命令行选项加入相应的类包。
    [4]没有在c++包含目录和库目录加入相应的类包路径(.h和.lib),.h一般在src文件夹中,.lib一般在lib文件夹
    [5]在测试工程中被测文件目录可能需要包含被测类的cpp定义文件
    [6]ICE接口测试时,无法解析可能因为被测文件没有包含进相关的cpp文件,另外,在TestSuite_ProjectRun.h文件中需要包含IProjectRun.h头文件,及相关的头文件(举例)。

    [7]import相关的无法解析内容,解决办法是在链接器的依赖项中加入相应的动态库

    [8]出现如下错误的原因一般是动态库没有包进来。__imp
    ProjectRun.obj : error LNK2019: 无法解析的外部符号 __imp__StartHistoryLocalModule,该符号在函数 “protected: virtual int __thiscall HiRTDB::CProjectRun::DoStart(void)” (?DoStart@CProjectRun@HiRTDB@@MAEHXZ) 中被引用

    [9]error LNK2001: 无法解析的外部符号 __imp___CrtDbgReportW
    工程属性,C/C++,代码生成,运行时库选择MDd,

    [9]无法解析的外部符号"__declspec(dllimport) public: int __thiscall HiRTDB::CTagTree::GetObjectA(int,struct HiRTDB::SBaseReadProps const &,struct HiRTDB::SBaseReadValues &)" (_imp?GetObjectA@CTagTree@HiRTDB@@QAEHHABUSBaseReadProps@2@AAUSBaseReadValues@2@@Z),该符号在函数"public: int __thiscall HiRTDB::CStringImpl::Get(int,struct HiRTDB::SStringReadProps const &,struct HiRTDB::SStringReadValues &)" (?Get@CStringImpl@HiRTDB@@QAEHHABUSStringReadProps@2@AAUSStringReadValues@2@@Z) 中被引用

    原因可能是工程配置文件中有多余选项,请参考其他模块的配置选项,不要有多余配置。

    [10]在 项目属性\链接器\输入\附加依赖项 中 没有添加***.lib

    展开全文
  • 错误 LNK2001 无法解析的外部符号 _sscanf 解决方法 输入:legacy_stdio_definitions.lib
  • 链接器工具错误 LNK2001 解决方法: 无法解析的外部符号 "symbol" 已编译的代码对符号进行引用或调用。 链接器搜索的任何库或对象文件中未定义该符号。 此错误消息后跟严重错误LNK1120。 若要修复错误 LNK1120,请...
  • VC++6.0中报错:FuncBusiness.obj : error LNK2001: unresolved external symbol "bool __cdecl checkDataOK(class std::basic_string,struct std::char_traits,class std::allocator<char> >,class std::basic_...
  • 一般来说,我们引用第三方库时,需要进行指定依赖项配置,若没有进行相关配置,则编译器会出现“LNK2001: 无法解析的外部符号”错误。这个是最常见的问题,具体步骤:项目、属性、链接器、常规、附加库目录:填写...
  • LNK 2001错误 原因以及解决办法

    千次阅读 2020-05-17 16:14:44
    错误 LNK2001 无法解析的外部符号 “private: static class GameManager * GameManager::gamem” (?gamem@GameManager@@0PAV1@A) bighomework2 .\Main.obj 需要参考上一个问题:LNK2005错误 上一个错误的文件如下: ...
  • error LNK2001: 无法解析的外部符号 error LNK2019: 无法解析的外部符号 一般说,对于函数使用中最常见的错误,如使用错误的函数名字,或者未包含声明该函数的头文件,会导致编译不通过,产生error C3861错误。...
  • 链接错误LNK2001

    2012-08-26 16:01:15
    一般来说,发生错误的原因有两个:一是所引用的函数、变量不存在、拼写不正确或者使用错误;其次可能使用了不同版本的连接库。以下是可能产生LNK2001错误的原因
  • c++工程error lnk2001解决方法

    千次阅读 2019-08-08 11:18:52
    最近在用cmake加依赖库的时候遇到了error lnk2001这个问题,语法都没问题了,却出现了这个烦人的错误 一网上在电脑前搜,找到比较有用的:...
  • 打开输出窗口,选中error,按F1,弹出关于该错误的帮助页面 帮助页面上会详细列出出现该错误的各种可能原因,对照一下,看看自己可能犯了哪种错误 如果还找不到原因,可以看输出窗体中是编译哪个文件时候出的这...
  • LINK : fatal error LNK1181: 无法打开输入文件“lib\shmdb.lib” [D:\temp\addone\cp p2node\bu ild\shmdb.vcxproj] gyp ERR! build error gyp ERR! stack Error: `msbuild` failed with exit code: 1 gyp ERR! ...
  • error LNK2001: 无法解析的外部符号 “private: static class std::allocator > StrVec::alloc” (?alloc@StrVec@@0V? a l l o c a t o r @ V ? allocator@V? allocator@V?basic_string@DU? c h a r t r a i t s @ ...
  • 在MSDN中查看关键字“LNK2001”看看。LNK2001错误原因有很多种,主要是函数原形错误。 1.)lib与dll不符。 2.)h文件与lib、dll不符。 3.)没有加入相应的lib. 学习VC++时经常会遇到链接错误LNK2001,该错误非常讨厌...
  • 在类中声明静态变量(.h) class Test { public: static void SetHwnd(HWND hWnd); private: static HWND sHwnd;...在Visual Studio 中build出现“LNK2001 unresolved external symbol...” 解决办法: 在.c
  • vc6.0 链接错误' libcp.lib error LNK2001 unresolved external symbol '的处理 在编译链接(release)时产生如下错误: libcp.lib(locale.obj) : error LNK2001: unresolved external symbol _sprintf libcp.lib...
  • error LNK2001:错误解决过程

    千次阅读 2020-03-31 15:15:01
    ReadUsbFileDlg.cpp F:\XPJ\ReadUsbFile\ReadUsbFileDlg.cpp(213) : warning C4101: ‘pBuf’ : unreferenced local variable ...ReadUsbFileDlg.obj : error LNK2001: unresolved external symbol “public: __t...
  • 错误 LNK2001 无法解析的外部符号 __imp__CrtDbgReport 在vs2019中遇到编译器报错: 错误 LNK2001 无法解析的外部符号 __imp__CrtDbgReport 解决 1.打开项目“”属性”, 2.选择:C/C++ ->预处理器 3. 清空 ...
  • 首先建议根据该Error LNK2001 无法解析的外部符号 的几种情况及解决办法https://blog.csdn.net/shenyulv/article/details/6699836进行问题排查 如果仍未解决问题,可参考以下解决思路: 当前项目可能存在lib文件...
  • LNK2001:无法解析外部符号_sprintf与LNK1104:无法打开文件“kernel32.lib”_臻訾胃的博客-CSDN博客 从网上下载一个VS的demo,编译之后老是报 LNK2001:无法解析外部符号_sprintf的错误,找了好久,发现 在项目属性...
  • error LNK2001的解决方法

    千次阅读 2019-09-26 15:47:58
    其实这个问题很简单,本来应该选择win32控制台应用程序,结果却选择了win32应用程序,就会导致这个问题。...=========================vc中error LNK2001:unresolved external symbol _WinMain@16的解决方法 一...
  • main.obj : error LNK2001: unresolved external symbol "void __cdecl vtkRenderingOpenGL_AutoInit_Construct(void)" (?vtkRenderingOpenGL_AutoInit_Construct@@YAXXZ) 解决办法: VTK_MODULE_INIT...
  • LNK2005,主程序调用其他CPP里的静态函数,去掉...LNK2001,已经在.OBJ文件中定义,查了下谷歌,说什么重复定义什么的,但我引用的是别人的源码库,我又不能改,解决方法很简单,直接移除该函数所在CPP就行了。 ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 10,683
精华内容 4,273
关键字:

lnk2001

友情链接: GPS网.rar