错误error LNK2019:,网上找了好久也没有找到解决办法???
错误信息:
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 CEGUIC++
{
// 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
[解决办法]
确认下 ceguifalagardex.lib 是否链接成功了?
[解决办法]
项目、属性、链接器、常规、附加库目录:填写附加依赖库所在目录 分号间隔多项
项目、属性、链接器、输入、附加依赖项:填写附加依赖库的名字.lib 空格或分号间隔多项
[解决办法]
把以来的库拷贝到你的工程试试 或者把中文改成英文
[解决办法]
没有文档之类的么?工程越是乱,你就越是要花心思去重新调整下,而不是弄个临时的解决办法,等到扩充的时候又会有同样的问题,这是饮鸩止渴。
你把工程中涉及的文件都检查一遍吧,然后重新调整下结构什么的。以后记得写文档。C++的话可以用doxygen + graphviz写类似javadoc的文档,graphviz可以生成函数调用关系图,UML图什么的,你可以试试看。要养成好习惯啊。