- <span class=”Apple-style-span”
- style=”widows:2;text-transform:none;text-indent:0px;display:inline !important;font:14px/21px verdana, ‘courier new’;white-space:normal;orphans:2;float:none;letter-spacing:normal;color:#000000;word-spacing:0px;-webkit-text-size-adjust:auto;-webkit-text-stroke-width:0px;”>1>terrain.obj
- : </span><span
- style=”widows:2;text-transform:none;text-indent:0px;font:14px/21px verdana, ‘courier new’;white-space:normal;orphans:2;letter-spacing:normal;color:red;word-spacing:0px;-webkit-text-size-adjust:auto;-webkit-text-stroke-width:0px;”>error
- LNK2019</span><span class=”Apple-style-span”
- style=”widows:2;text-transform:none;text-indent:0px;display:inline !important;font:14px/21px verdana, ‘courier new’;white-space:normal;orphans:2;float:none;letter-spacing:normal;color:#000000;word-spacing:0px;-webkit-text-size-adjust:auto;-webkit-text-stroke-width:0px;”>:
- 无法解析的外部符号 “float __cdecl d3d::Lerp(float,float,float)”
- (</span><?Lerp@d3d@@YAMMMM@Z><span class=”Apple-style-span”
- style=”widows:2;text-transform:none;text-indent:0px;display:inline !important;font:14px/21px verdana, ‘courier new’;white-space:normal;orphans:2;float:none;letter-spacing:normal;color:#000000;word-spacing:0px;-webkit-text-size-adjust:auto;-webkit-text-stroke-width:0px;”>),该符号在函数
- “public: float __thiscall Terrain::getHeight(float,float)”
- (</span><?getHeight@Terrain@@QAEMMM@Z><span class=”Apple-style-span”
- style=”widows:2;text-transform:none;text-indent:0px;display:inline !important;font:14px/21px verdana, ‘courier new’;white-space:normal;orphans:2;float:none;letter-spacing:normal;color:#000000;word-spacing:0px;-webkit-text-size-adjust:auto;-webkit-text-stroke-width:0px;”>)
- 中被引用</span>\
- <span class=”Apple-style-span”
- style=”widows:2;text-transform:none;text-indent:0px;display:inline !important;font:14px/21px verdana, ‘courier new’;white-space:normal;orphans:2;float:none;letter-spacing:normal;color:#000000;word-spacing:0px;-webkit-text-size-adjust:auto;-webkit-text-stroke-width:0px;”>1>terrainDriver.obj
- error LNK2019: 无法解析的外部符号 “bool __cdecl d3d::InitD3D(struct
HINSTANCE__ *,int,int,bool,enum _D3DDEVTYPE,struct
IDirect3DDevice9 * *)”
(</span><?InitD3D@d3d@@YA_NPAUHINSTANCE__@@HH_NW4_D3DDEVTYPE@@PAPAUIDirect3DDevice9@@@Z>),该符号在函数 _WinMain@16 中被引用
解决方案:将Lerp定义复制到.h文件中,重新运行一下,若还是出错,再拷贝回来。\
由于该加的.lib文件都加上了,所以还出现这种错误就是编译器的原因,具体不甚了解.\
一般无法解析的外部符号都是因为.lib文件没有包含或者对应函数没有实现定义,如果还是出错的话,那就重新编写一遍,因为可能是拷贝过来的文件,编译器有些问题。
Add(2012-08-18 17:02):
对于必须重新编写一遍的情况得注意,确实是很纠结的事情,毕竟没错,但是编译器还是报错.
所以我将SplitPolygon那段代码删除后再重新复制进去就解决了
究其原因应该是先编译的SplitPolygon文件,然后编译自己刚刚修改的Cpolygon文件,所以就会报错.
比如碰到过这样的错误.
1>—— 已启动生成: 项目: Terrain, 配置: Debug Win32 ——
1>生成启动时间为 2012/8/18 16:36:54。
1>InitializeBuildStatus:
1> 正在对“Debug\Terrain.unsuccessfulbuild”执行 Touch 任务。
1>ClCompile:
1> Math.cpp
1> d:\program files\microsoft visual studio 10.0\vc\include\dinput.h: DIRECTINPUT_VERSION undefined. Defaulting to version 0x0800
1> 正在生成代码…
1> 正在跳过…(未检测到相关更改)
1> terrainDriver.cpp
1> Role.cpp
1> Picking.cpp
1> ParticleSystem.cpp
1> BSP.cpp
1>ManifestResourceCompile:
1> 所有输出均为最新。
1>BSP.obj : error LNK2019: 无法解析的外部符号 “public: __thiscall MarstauLibrarry::CPolygon::CPolygon(struct D3DXVECTOR3 const *,int)” (??0CPolygon@MarstauLibrarry@@QAE@PBUD3DXVECTOR3@@H@Z),该符号在函数 “public: void __thiscall MarstauLibrarry::CBSP::SplitPolygon(class MarstauLibrarry::CPolygon &,struct MarstauLibrarry::stPlane,class MarstauLibrarry::CPolygon * *,class MarstauLibrarry::CPolygon * *)” (?SplitPolygon@CBSP@MarstauLibrarry@@QAEXAAVCPolygon@2@UstPlane@2@PAPAV32@2@Z) 中被引用
1>E:\Visual Studio 2010\Working\MarstauLibrary\Debug\Terrain.exe : fatal error LNK1120: 1 个无法解析的外部命令
1>
1>生成失败。
1>
1>已用时间 00:00:05.66
========== 生成: 成功 0 个,失败 1 个,最新 0 个,跳过 0 个 ==========
\