【发布时间】:2012-02-05 06:42:09
【问题描述】:
与此类似的问题:How to exclude .lib file from linker command line argument in VC++
基本上,我正在做一项学校作业,需要我的 c++ 程序调用我的 oracle 数据库。我在搞乱 Oracle OCCI 并将库 "oraocci11.lib" "oraocci11d.lib" 设置为默认包含在所有项目中。
我遵循了here解释的设置
之后我尝试从同一源编译一个示例项目来测试 OCCI,并得到如下错误:
error LNK2019: unresolved external symbol "public: static class
oracle::occi::Environment * __cdecl oracle::occi::Environment::createEnvironment(enum
oracle::occi::Environment::Mode,void *,void * (__cdecl*)(void *,unsigned int),void
* (__cdecl*)(void *,void *,unsigned int),void (__cdecl*)(void *,void *))"
(?createEnvironment@Environment@occi@oracle@@SAPAV123@W4Mode@123@PAXP6APAX1I@ZP6APAX11I@ZP6AX11@Z@Z)
referenced in function _main
我的默认链接器>命令行
/OUT:"C:\Users\Jem\Documents\Visual Studio 2010\Projects\sql\Debug\sql.exe"
/INCREMENTAL /NOLOGO "msvcprtd.lib" "kernel32.lib" "user32.lib" "gdi32.lib"
"winspool.lib" "comdlg32.lib" "advapi32.lib" "shell32.lib" "ole32.lib" "oleaut32.lib"
"uuid.lib" "odbc32.lib" "odbccp32.lib" "oraocci11.lib" "oraocci11d.lib" /MANIFEST
/ManifestFile:"Debug\sql.exe.intermediate.manifest" /ALLOWISOLATION
/MANIFESTUAC:"level='asInvoker' uiAccess='false'" /DEBUG /PDB:"C:\Users\Jem\Documents
\Visual Studio 2010\Projects\sql\Debug\sql.pdb" /SUBSYSTEM:CONSOLE /PGD:"C:\Users
\Jem\Documents\Visual Studio 2010\Projects\sql\Debug\sql.pgd" /TLBID:1 /DYNAMICBASE
/NXCOMPAT /MACHINE:X86 /ERRORREPORT:QUEUE
如果您查看上面的属性,这两个库被包含在“oraocci11.lib”“oraocci11d.lib”中
我想从命令行中删除这两个,但该选项是只读的。
在对 OCCI 感到沮丧之后,我试图 制作一个简单的程序调用 main.cpp,里面只有“int main() { return 0; }”。 我构建它并得到它
LINK : fatal error LNK1104: cannot open file 'oraocci11.lib'
我包含了包含库的文件夹。 这一次,我明白了
LINK : fatal error LNK1104: cannot open file 'msvcprtd.lib'
我在我的笔记本上试过了,效果很好。我的笔记本 VS2010 是全新安装的 VS2010。
所以我认为这可能是命令行,因为在尝试使用返回 oraocci11.lib 错误的第一个设置进行构建之前,我已经排除了属性中的所有文件夹和库。
我已经完成了我在网上找到的所有可能的解决方案,但无济于事。 我已经尝试撤消所有设置(目录和附加依赖项) 即使安装和重新安装我的 VS2010 也无济于事。 请帮忙。
【问题讨论】:
-
究竟是什么错误?编辑您的问题以包含它的副本和粘贴。
-
and set the libraries to be included to all projects by default。这就是它的来源,大概。你没有描述你做了什么。
标签: c++ visual-studio-2010 linker