错误error LNK2019:,网上找了好久也没有找到解决办法???

szjszj16 2013-11-04 01:02:00
错误信息:
ceguifalagardex.lib(FalActionButtonProperties.obj) : error LNK2019:
无法解析的外部符号 "
__declspec(dllimport) public: __thiscall CEGUI::PushButton::PushButton(class CEGUI::PushButton const &)" (__imp_??0PushButton@CEGUI@@QAE@ABV01@@Z),
该符号在函数
"public: __thiscall CEGUI::FalagardButton::FalagardButton(class CEGUI::FalagardButton const &)" (??0FalagardButton@CEGUI@@QAE@ABV01@@Z) 中被引用
代码有点多,呵呵
CEGUI::PushButton::PushButton类定义
#include "elements/CEGUIPushButton.h"

// Start of CEGUI namespace section
namespace CEGUI
{
// event strings
const String PushButton::EventNamespace("PushButton");
const String PushButton::EventClicked( (utf8*)"Clicked" );
// properties
PushButtonProperties::NormalImage PushButton::d_normalImageProperty;
PushButtonProperties::PushedImage PushButton::d_pushedImageProperty;
PushButtonProperties::HoverImage PushButton::d_hoverImageProperty;
PushButtonProperties::DisabledImage PushButton::d_disabledImageProperty;
PushButtonProperties::UseStandardImagery PushButton::d_useStandardImageryProperty;
PushButtonProperties::TextXOffset PushButton::d_textXOffsetProperty;

PushButton::PushButton(const String& type, const String& name) :
ButtonBase(type, name)
{
// default options
d_autoscaleImages = true;
d_useStandardImagery = true;
d_useNormalImage = false;
d_useHoverImage = false;
d_usePushedImage = false;
d_useDisabledImage = false;
d_textXOffset = 0.0f;

// add properties for push button class
addPushButtonProperties();
}

PushButton::~PushButton(void)
{
}

bool PushButton::isStandardImageryEnabled(void) const
{
return d_useStandardImagery;
}

bool PushButton::isCustomImageryAutoSized(void) const
{
return d_autoscaleImages;
}

const RenderableImage* PushButton::getNormalImage(void) const
{
return d_useNormalImage ? &d_normalImage : static_cast<const RenderableImage*>(0);
}

const RenderableImage* PushButton::getHoverImage(void) const
{
return d_useHoverImage ? &d_hoverImage : static_cast<const RenderableImage*>(0);
}

const RenderableImage* PushButton::getPushedImage(void) const
{
return d_usePushedImage ? &d_pushedImage : static_cast<const RenderableImage*>(0);
}

const RenderableImage* PushButton::getDisabledImage(void) const
{
return d_useDisabledImage ? &d_disabledImage : static_cast<const RenderableImage*>(0);
}

float PushButton::getTextXOffset(void) const
{
return d_textXOffset;
}

void PushButton::setStandardImageryEnabled(bool setting)
{
}

void PushButton::setCustomImageryAutoSized(bool setting)
{

}

void PushButton::setNormalImage(const RenderableImage* image)
{

}

void PushButton::setHoverImage(const RenderableImage* image)
{

}

void PushButton::setPushedImage(const RenderableImage* image)
{
}

void PushButton::setDisabledImage(const RenderableImage* image)
{
}

void PushButton::setTextXOffset(float offset)
{
d_textXOffset = offset;
}


void PushButton::onClicked(WindowEventArgs& e)
{
fireEvent(EventClicked, e, EventNamespace);
}

void PushButton::onMouseButtonUp(MouseEventArgs& e)
{
}

void PushButton::onSized(WindowEventArgs& e)
{
}

void PushButton::resizeWithText()
{
}

void PushButton::addPushButtonProperties(void)
{
}

} // End of CEGUI namespace section


CEGUI::FalagardButton::FalagardButton类定义
#include "FalButton.h"
#include "falagard/CEGUIFalWidgetLookManager.h"
#include "falagard/CEGUIFalWidgetLookFeel.h"

// Start of CEGUI namespace section
namespace CEGUI
{
const utf8 FalagardButton::WidgetTypeName[] = "Falagard/Button";

FalagardButton::FalagardButton(const String& type, const String& name) :
PushButton(type, name)
{
}

FalagardButton::~FalagardButton()
{
}

void FalagardButton::drawSelf(float z)
{

}

void FalagardButton::drawNormal(float z)
{

}

void FalagardButton::drawHover(float z)
{

}

void FalagardButton::drawPushed(float z)
{

}

void FalagardButton::drawDisabled(float z)
{

}

void FalagardButton::doButtonRender(const String& state)
{

}

Size FalagardButton::getRenderSize()
{

}

Window* FalagardButtonFactory::createWindow(const String& name)
{
return new FalagardButton(d_type, name);
}

void FalagardButtonFactory::destroyWindow(Window* window)
{
delete window;
}

} // End of CEGUI namespace section
...全文
459 20 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
20 条回复
切换为时间正序
请发表友善的回复…
发表回复
szjszj16 2013-11-21
  • 打赏
  • 举报
回复
拖了很长时间对不起大家了,准备装vs2005试试看,先结贴吧
szjszj16 2013-11-16
  • 打赏
  • 举报
回复
呵呵,我现在能确定不是路径的问题,另外我有一点补充,就是这个项目之前是vs2005,现在用2008编译,看到网上说编译器版本不同也会造成LNK2001的错,还是解决不了。
赵4老师 2013-11-13
  • 打赏
  • 举报
回复
引用 7 楼 zhao4zhong1 的回复:
将所有相对路径改为绝对路径。
不听老人言,吃亏在眼前。
szjszj16 2013-11-12
  • 打赏
  • 举报
回复
补充一下 我把Main.lib剪切到./Release/Release/目录下面 现在又报fatal error LNK1181: 无法打开输入文件“..\..\..\..\_scripts\vc7.1\release\main.lib” 到底是为什么?
szjszj16 2013-11-12
  • 打赏
  • 举报
回复
先谢谢大家了,我试了一遍还是不行,我又发现了一个问题 OgreMain项目是生成动态库的,输出文件是./Release/Release/Main.dll 可是正在创建库 ./Release/Main.lib 和对象 ./Release/Main.exp 是不是生成dll文件的同时也会生成lib文件,如果是的话,是不是必须在同一个目录下
Adol1111 2013-11-08
  • 打赏
  • 举报
回复
这里有一份Doxygen生成的文档你可以参考下,不过刚开始用Doxygen设置有点麻烦。



Adol1111 2013-11-08
  • 打赏
  • 举报
回复
引用 14 楼 szjszj16 的回复:
[quote=引用 9 楼 nightkids_008 的回复:] 把以来的库拷贝到你的工程试试 或者把中文改成英文
请问具体拷贝工程的哪个目录,而且工程很多很乱,工程的根目录我也不能确定,我应该怎么去找工程的根目录[/quote] 没有文档之类的么?工程越是乱,你就越是要花心思去重新调整下,而不是弄个临时的解决办法,等到扩充的时候又会有同样的问题,这是饮鸩止渴。 你把工程中涉及的文件都检查一遍吧,然后重新调整下结构什么的。以后记得写文档。C++的话可以用doxygen + graphviz写类似javadoc的文档,graphviz可以生成函数调用关系图,UML图什么的,你可以试试看。要养成好习惯啊。
szjszj16 2013-11-08
  • 打赏
  • 举报
回复
引用 9 楼 nightkids_008 的回复:
把以来的库拷贝到你的工程试试 或者把中文改成英文
请问具体拷贝工程的哪个目录,而且工程很多很乱,工程的根目录我也不能确定,我应该怎么去找工程的根目录
szjszj16 2013-11-08
  • 打赏
  • 举报
回复
而且我想问问那个../是相对与哪个目录
szjszj16 2013-11-08
  • 打赏
  • 举报
回复
先谢谢大家了,我重新编译了一遍,当链接CEGUIFalagardEx的时候,提示LINK : fatal error LNK1181: 无法打开输入文件“Main.lib;CEGUIFalagardEx.lib” 我看了一下可能是输出目录、中间目录配置有问题,请大家帮我看看有什么问题,具体怎么改 CEGUIBase的输出目录:..\..\..\..\_Scripts\VC7.1\Release 中间目录:..\..\..\..\_Scripts\VC7.1\Release\CEGUIBase 输出文件:..\..\..\..\_Scripts\VC7.1\Release\UIBase.dll OgreMain:输出目录:./Release/$(ConfigurationName) 中间目录:./Release/$(ProjectName) 输出文件:./Release/Main.dll CEGUIFalagardEx:的输出目录:..\..\_Scripts\VC7.1\Release\CEGUIFalagardEx 临时目录:..\..\_Scripts\VC7.1\Release\CEGUIFalagardEx 输出文件:..\..\_Scripts\VC7.1\Release\CEGUIFalagardEx.lib CEGUIFalagard依赖于上面三个项目 CEGUIFalagard的附加库目录:..\..\..\..\_Scripts\VC7.1\Release
赵4老师 2013-11-06
  • 打赏
  • 举报
回复
搜“跟我一起写Makefile”
Luisfan 2013-11-06
  • 打赏
  • 举报
回复
引用 7 楼 zhao4zhong1 的回复:
将所有相对路径改为绝对路径。
库添加有问题
nightkids_008 2013-11-06
  • 打赏
  • 举报
回复
把以来的库拷贝到你的工程试试 或者把中文改成英文
szjszj16 2013-11-06
  • 打赏
  • 举报
回复
CEGUIFalagard 配置里面的附加库目录和附加依赖项我都改为全路径了,只不过有中文,可是还是不行,我想只有重新编译一遍试试看了
赵4老师 2013-11-05
  • 打赏
  • 举报
回复
将所有相对路径改为绝对路径。
szjszj16 2013-11-05
  • 打赏
  • 举报
回复
我的是这样配置的,不知道对不对 有三个工程 CEGUIBase 输出文件:..\..\..\..\_Scripts\VC7.1\Release\UIBase.dll CEGUIFalagardEx 输出文件:..\..\_Scripts\VC7.1\Release\CEGUIFalagardEx.lib CEGUIFalagard 依赖与上面俩个工程,输出文件: ..\..\..\..\_Scripts\VC7.1\Release\UIFrame.dll ,它的附加库目录:..\..\..\..\OGRE\Dependencies\lib\Release;..\..\..\..\_Scripts\VC7.1\Release 附加依赖项:Main.lib CEGUIFalagardEx.lib 俩个之间换行隔开 我想问一下,这样的配置可以吗?如果可以我的还是一直报上面的错。
赵4老师 2013-11-04
  • 打赏
  • 举报
回复
项目、属性、链接器、常规、附加库目录:填写附加依赖库所在目录 分号间隔多项 项目、属性、链接器、输入、附加依赖项:填写附加依赖库的名字.lib 空格或分号间隔多项
szjszj16 2013-11-04
  • 打赏
  • 举报
回复
我先编译CEGUIFalagardEx,生成ceguifalagardex.lib,然后在编译CEGUIFalagard,依赖于CEGUIFalagardEx,我用的是vs2008,CEGUIFalagardEx输出..\..\_Scripts\VC7.1\Release\CEGUIFalagardEx.lib CEGUIFalagard附加库目录..\..\..\..\_Scripts\VC7.1\Release我已经配置过了,是不是这里有问题,那么应该如何配置
max_min_ 2013-11-04
  • 打赏
  • 举报
回复
引用 2 楼 szjszj16 的回复:
其实我想问的应该是c++语法问题,public: __thiscall CEGUI::PushButton::PushButton(class CEGUI::PushButton const &)" (__imp_??0PushButton@CEGUI@@QAE@ABV01@@Z)这个方法我怎么找不到,初学c++见谅
确认下 ceguifalagardex.lib 是否链接成功了?
szjszj16 2013-11-04
  • 打赏
  • 举报
回复
其实我想问的应该是c++语法问题,public: __thiscall CEGUI::PushButton::PushButton(class CEGUI::PushButton const &)" (__imp_??0PushButton@CEGUI@@QAE@ABV01@@Z)这个方法我怎么找不到,初学c++见谅
加载更多回复(1)

65,187

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧