添加了对.lib项目的引用 - 项目不使用.cpp文件?

时间:2013-12-19 09:29:12

标签: c++ visual-studio reference static-libraries

我仍然是C ++的新手,如果我误解了某些内容,请原谅我。

我有一个包含sql连接类的C ++库,我想在项目中使用它。我有:

  • 将其添加到同一解决方案
  • 在“框架和参考”
  • 中添加了对它的引用
  • 包含在主项目的stdafx.cpp中的库头文件中
  • 将库项目的目录添加为主项目的包含目录

但是在编译项目时,我仍然会收到一些unresolved external symbol错误。

如果我包含库项目的* .cpp文件,它可以正常工作,但我认为你不必这样做。


这些是我得到的确切错误:

2>Link:
2>  sqlConnector.obj : MSIL .netmodule or module compiled with /GL found; restarting link with /LTCG; add /LTCG to the link command line to improve linker performance
2>     Creating library .\Release\MainProject.lib and object .\Release\MainProject.exp
2>LINK : warning LNK4098: defaultlib 'mfc100u.lib' conflicts with use of other libs; use /NODEFAULTLIB:library
2>LINK : warning LNK4098: defaultlib 'mfcs100u.lib' conflicts with use of other libs; use /NODEFAULTLIB:library
2>MainProject.obj : error LNK2001: unresolved external symbol "public: bool __thiscall SQLQuery::AddParameter(class ATL::CStringT<char,class StrTraitMFC_DLL<char,class ATL::ChTraitsCRT<char> > >)" (?AddParameter@SQLQuery@@QAE_NV?$CStringT@DV?$StrTraitMFC_DLL@DV?$ChTraitsCRT@D@ATL@@@@@ATL@@@Z)
2>MainProject.obj : error LNK2001: unresolved external symbol "public: void __thiscall SQLQuery::SetQuery(class ATL::CStringT<char,class StrTraitMFC_DLL<char,class ATL::ChTraitsCRT<char> > >)" (?SetQuery@SQLQuery@@QAEXV?$CStringT@DV?$StrTraitMFC_DLL@DV?$ChTraitsCRT@D@ATL@@@@@ATL@@@Z)
2>MainProject.obj : error LNK2001: unresolved external symbol "public: bool __thiscall SQLQuery::Open(class ATL::CStringT<char,class StrTraitMFC_DLL<char,class ATL::ChTraitsCRT<char> > >)" (?Open@SQLQuery@@QAE_NV?$CStringT@DV?$StrTraitMFC_DLL@DV?$ChTraitsCRT@D@ATL@@@@@ATL@@@Z)
2>MainProject.obj : error LNK2001: unresolved external symbol "public: void __thiscall SQLQuery::SetConnectionString(class ATL::CStringT<char,class StrTraitMFC_DLL<char,class ATL::ChTraitsCRT<char> > >)" (?SetConnectionString@SQLQuery@@QAEXV?$CStringT@DV?$StrTraitMFC_DLL@DV?$ChTraitsCRT@D@ATL@@@@@ATL@@@Z)
2>sqlConnector.obj : error LNK2001: unresolved external symbol "public: void __thiscall CAMTrace::SetEXEName(wchar_t const *)" (?SetEXEName@CAMTrace@@QAEXPB_W@Z)
2>sqlConnector.obj : error LNK2001: unresolved external symbol "public: void __thiscall CAMTrace::Trace(wchar_t const *,int,int)" (?Trace@CAMTrace@@QAEXPB_WHH@Z)
2>.\Release\MainProject.exe : fatal error LNK1120: 6 unresolved externals

1 个答案:

答案 0 :(得分:1)

您需要做的是将库二进制文件(* .lib)添加到项目的链接器输入中。

为了做到这一点,你需要指定在哪里查找文件,这是

下的一个条目

链接器/常规/其他库目录

然后将库添加到

下的链接器输入

链接器/输入/附加依赖性