我使用以下 make 文件构建标准示例
default: dquery.exe
CFLAGS = /DNT_INTEL /DWIN32_NT /DWIN32 -c /W3 /Od /Zi /I..\common /DNT /DMSC /MD
OBJS = dquery.obj
dquery.obj: dquery.c
cl $(CFLAGS) dquery.c
dquery.exe: $(OBJS)
link -machine:IX86 user32.lib advapi32.lib netapi32.lib /DEBUG /DEBUGTYPE:BOTH -out:dquery.exe /STACK:3000,3000 $(OBJS) ..\lib\rdscli.lib ..\lib\util.lib
并且没有问题。接下来,我使用 Visual Studio 6 或 2010 为该示例创建新项目,尝试应用 make 文件中的所有参数并获取这样的命令行选项
对于编译器:
/Od /I "..\common" /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /Gm /EHsc /RTC1 /MDd /Fo"Debug\\" /Fd"Debug\vc90.pdb" /W3 /nologo /c /Wp64 /ZI /TP /errorReport:prompt
对于链接器:
/VERBOSE /OUT:"Debug\dquery2.exe" /INCREMENTAL /NOLOGO /LIBPATH:"..\lib" /MANIFEST /MANIFESTFILE:"Debug\dquery2.exe.intermediate.manifest" /MANIFESTUAC:"level='asInvoker' uiAccess='false'" /DEBUG /PDB:"d:\Piniutin\samples\dquery2\Debug\dquery2.pdb" /SUBSYSTEM:CONSOLE /DYNAMICBASE /NXCOMPAT /MACHINE:X86 /ERRORREPORT:PROMPT netapi32.lib rdscli.lib util.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
链接器打印一些错误消息,如下所示:
dquery.obj : error LNK2019: unresolved external symbol _SQLConnect referenced in function _main
在这种情况下,链接器要么找不到库文件,要么在库中找不到函数。函数 _SQLConnect 存在于 rdscli.lib 中,但链接器无法识别它。
我该如何解决这个问题?
提前致谢