错误LNK2001:使用Visual C+的Pro*C代码的未解析引用+;
尝试使用Pro*C预处理的C文件构建DLL文件时出错,我用于构建DLL的命令是:错误LNK2001:使用Visual C+的Pro*C代码的未解析引用+;,c,windows,visual-studio,oracle,C,Windows,Visual Studio,Oracle,尝试使用Pro*C预处理的C文件构建DLL文件时出错,我用于构建DLL的命令是: link /NOLOGO /DLL /SUBSYSTEM:WINDOWS /NODEFAULTLIB:libc.lib /IMPLIB:orasql11.lib /IMPLIB:orasqx11.lib /OUT:qvc.dll\ /IMPLIB:oraxa11.lib /IMPLIB:oci.lib \ /LIBPATH:"$(ORACLE_HOME)\precomp\lib\msvc" /LIB
link /NOLOGO /DLL /SUBSYSTEM:WINDOWS /NODEFAULTLIB:libc.lib /IMPLIB:orasql11.lib /IMPLIB:orasqx11.lib /OUT:qvc.dll\
/IMPLIB:oraxa11.lib /IMPLIB:oci.lib \
/LIBPATH:"$(ORACLE_HOME)\precomp\lib\msvc" /LIBPATH:"$(ORACLE_HOME)\precomp\lib" @files.lnk
错误是:
error LNK2019: unresolved external symbol _sqlcxt
如何解决此问题?选项是为正在创建的导入库指定名称,而不是让链接器使用ProC库作为输入:
link /NOLOGO /DLL /SUBSYSTEM:WINDOWS /NODEFAULTLIB:libc.lib orasql11.lib orasqx11.lib /OUT:qvc.dll\
oraxa11.lib oci.lib \
/LIBPATH:"$(ORACLE_HOME)\precomp\lib\msvc" /LIBPATH:"$(ORACLE_HOME)\precomp\lib" @files.lnk
错误LNK2019:未解析的外部符号_sqlcxt在**Visual Studio VC++已解决错误** 如果您使用的是Oracle客户端,则可能会出现此错误,因为库已损坏(可能已损坏)。例如orasqx12.lib和orasqx12.lib。这些库可能有一些bug。如果您已经下载了Oracle Client 12.2.0.1,或者可能已经使用了早期版本,您就可以了。但是,如果您正在下载64位版本的Oracle数据库或Oracle客户端
. > P>我试图用以前的Visual C++ 2005项目链接Oracle数据库应用程序,但用Oracle 12C代替Oracle 11。p> orasql12.lib似乎是用添加下划线作为前缀的代码生成的,但visual studio需要一个导入库,而不带前导下划线 因此,我通过重新生成orasql12.lib来解决这个问题。为此,必须在VisualStudio工具命令行控制台中使用DUMPBIN和LIB命令。在安装oraclesql12.dll的目录中打开VC++命令行控制台,然后键入:
DUMPBIN/EXPORTS orasql12.dll>orasql12.def
这将生成一个必须编辑的def文件,以便删除除名称列符号外的所有符号并添加两个标题行,orasql12.def文件的第一行如下所示:
LIBRARY orasql12
EXPORTS
DSNTIAR
ORASQL8
...
然后在VC++工具控制台中使用LIB命令并键入:
LIB/DEF:orasql12.DEF/MACHINE:X86/LIBPATH:D:\users\Appl\oracle\client\u 12c\bin
(LIBPATH设置为orasql12.dll安装目录,如果需要,请更改X86)
生成了一个新的orasql12.lib,但没有前导下划线。非常感谢,它解决了这个问题