Почему один из моих файлов CPP не создается при использовании командной строки для компиляции - PullRequest
0 голосов
/ 07 июля 2011

Настройка: Windows XP MS VisualStudio 2003 Sybase SQL Anywhere 9 Встроенный SQL (я знаю ... но это действительно старый проект)

Этот проект настроен, как и многие другие, с которыми я сталкивался здесь. Прекомпилятор SQL обрабатывает файл SQC для генерации файла CPP, который затем компилируется в OBJ и, наконец, связывается с частью DLL.

При использовании среды разработки GUI проблем нет. Решение строится успешно каждый раз, на каждой машине.

При сборке из командной строки результаты зависят от компьютера / среды. На самом деле, мне удалось успешно скомпилировать проект в командной строке, изначально. Теперь у меня тоже есть проблемы.

Я четыре раза проверил пути. И настройки. Он выглядит так же, как и любой другой проект с таким типом настройки. Пути действительны. У меня есть права администратора для всей системы. Сгенерированный файл не доступен только для чтения и не зарегистрирован в RCS. Когда я чищу, файлы удаляются, включая CPP. CPP не исключается из сборки в проекте.

Из того, что я обнаружил, сгенерированный файл CPP создается и располагается там, где он должен быть, но не добавляется в файл ответов компилятора. Таким образом, CPP никогда не строится. Но файл ответов компоновщика содержит OBJ в своем списке. Поскольку файл не существует, поскольку он не был скомпилирован, он не может связать.

У меня закончились идеи о том, что еще может вызвать эту проблему.

Команда:

"C:\Program Files\Microsoft Visual Studio .NET 2003\Common7\Tools\..\ide\devenv.com" C:\workspaces\Borg\Main\_build\..\BioID\BioID.sln /build Release /out C:\workspaces\Borg\Main\_build\..\_build\output\visualstudio.log

приводит к следующему BuildLog.htm. Пути в точности соответствуют нашему сценарию сборки с использованием nant, поэтому я могу воссоздать проблему по своему усмотрению.

------- Build started: Project: PyxPosId, Configuration: Release|Win32 -------

 Command Lines      Creating temporary file "c:\workspaces\Borg\Main\BioID\Release\BAT000001.bat" with contents
[
@echo off
sqlpp -o WINNT -r "c:\workspaces\Borg\Main\BioID\SQLBIO.SQC" "c:\workspaces\Borg\Main\BioID\SQLBIO".cpp

if errorlevel 1 goto VCReportError
goto VCEnd
:VCReportError
echo Project : error PRJ0019: A tool returned an error code from "Performing Custom Build Step"
exit 1
:VCEnd
]
Creating command line "c:\workspaces\Borg\Main\BioID\Release\BAT000001.bat"
Creating temporary file "c:\workspaces\Borg\Main\BioID\Release\RSP000002.rsp" with contents
[
/O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_USRDLL" /D "_WINDLL" /FD /EHsc /MT /YX"stdafx.h" /Fp".\PyxPosId___Win32_Release_Sybase9/BioId.pch" /Fo".\PyxPosId___Win32_Release_Sybase9/" /Fd".\PyxPosId___Win32_Release_Sybase9/" /W3 /c /TP
.\VXBio.cpp
.\VFSbio.cpp
.\VBioDlg.cpp
.\USTDREG.CPP
.\USTDNEW.CPP
.\STDREG.CPP
.\STDNEW.CPP
.\SetupConfigPage.cpp
.\SCCfgDlg.cpp
.\ScanId.cpp
.\pyxsheet.cpp
.\PyxPosId.cpp
.\MsgBox.cpp
.\FTbio.cpp
.\FIUBIO.CPP
.\DevTypePg.cpp
.\CGray8Dib.cpp
.\CardScan.cpp
.\bioutils.cpp
.\BioSet.cpp
.\BioDb.cpp
.\BIO.CPP
.\APPSRC.CPP
]
Creating command line "cl.exe @c:\workspaces\Borg\Main\BioID\Release\RSP000002.rsp /nologo"
Creating temporary file "c:\workspaces\Borg\Main\BioID\Release\RSP000003.rsp" with contents
[
/O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_USRDLL" /D "_WINDLL" /FD /EHsc /MT /Yc"stdafx.h" /Fp".\PyxPosId___Win32_Release_Sybase9/BioId.pch" /Fo".\PyxPosId___Win32_Release_Sybase9/" /Fd".\PyxPosId___Win32_Release_Sybase9/" /W3 /c /TP
.\StdAfx.cpp
]
Creating command line "cl.exe @c:\workspaces\Borg\Main\BioID\Release\RSP000003.rsp /nologo"
Creating command line "rc.exe /d "NDEBUG" /l 0x409 /fo"Release/BIO.res" .\BIO.RC"
Creating temporary file "c:\workspaces\Borg\Main\BioID\Release\RSP000004.rsp" with contents
[
/OUT:"PyxPosId___Win32_Release_Sybase9/Pyxposid.dll" /INCREMENTAL:NO /NOLOGO /DLL /NODEFAULTLIB:"libc.lib" /NODEFAULTLIB:"LIBCMTD" /DEF:".\PyxPosId.def" /DELAYLOAD:"OleAcc.dll" /PDB:".\PyxPosId___Win32_Release_Sybase9/Pyxposid.pdb" /SUBSYSTEM:WINDOWS /IMPLIB:".\PyxPosId___Win32_Release_Sybase9/Pyxposid.lib" /MACHINE:X86 NAFXCW.LIB  dblibtm.lib dpfpfns.lib dpmatch.lib  vxapi.lib DelayImp.lib DelayImp.lib
.\pyxposid___win32_release_sybase9\APPSRC.obj
.\pyxposid___win32_release_sybase9\BIO.obj
.\Release\BIO.res
.\pyxposid___win32_release_sybase9\BioDb.obj
.\pyxposid___win32_release_sybase9\BioSet.obj
.\pyxposid___win32_release_sybase9\bioutils.obj
.\pyxposid___win32_release_sybase9\CardScan.obj
.\pyxposid___win32_release_sybase9\CGray8Dib.obj
.\pyxposid___win32_release_sybase9\DevTypePg.obj
.\pyxposid___win32_release_sybase9\FIUBIO.obj
.\pyxposid___win32_release_sybase9\FTbio.obj
.\pyxposid___win32_release_sybase9\MsgBox.obj
.\pyxposid___win32_release_sybase9\PyxPosId.obj
.\pyxposid___win32_release_sybase9\pyxsheet.obj
.\pyxposid___win32_release_sybase9\ScanId.obj
.\pyxposid___win32_release_sybase9\SCCfgDlg.obj
.\pyxposid___win32_release_sybase9\SetupConfigPage.obj
.\pyxposid___win32_release_sybase9\Sqlbio.obj
.\pyxposid___win32_release_sybase9\StdAfx.obj
.\pyxposid___win32_release_sybase9\STDNEW.obj
.\pyxposid___win32_release_sybase9\STDREG.obj
.\pyxposid___win32_release_sybase9\USTDNEW.obj
.\pyxposid___win32_release_sybase9\USTDREG.obj
.\pyxposid___win32_release_sybase9\VBioDlg.obj
.\pyxposid___win32_release_sybase9\VFSbio.obj
.\pyxposid___win32_release_sybase9\VXBio.obj
]
Creating command line "link.exe @c:\workspaces\Borg\Main\BioID\Release\RSP000004.rsp"
 Output Window      Performing Custom Build Step
Adaptive Server Anywhere Embedded SQL Version 9.0.2.3169
Using collation sequence "1252LATIN1"
c:/workspaces/Borg/Main/BioID/SQLBIO.SQC(715): Warning! W2665 near ';': host variable 'hvuserIid' has been redefined
Compiling...
StdAfx.cpp
 WINVER not defined. Defaulting to 0x0501 (Windows XP and Windows .NET Server)
Compiling...
VXBio.cpp
 WINVER not defined. Defaulting to 0x0501 (Windows XP and Windows .NET Server)
VXBio.cpp(818) : warning C4244: '=' : conversion from '__time64_t' to 'time_t', possible loss of data
VFSbio.cpp
**OPTION** WIN32=Building for 32-bit Windows
VBioDlg.cpp
 WINVER not defined. Defaulting to 0x0501 (Windows XP and Windows .NET Server)
**OPTION** WIN32=Building for 32-bit Windows
USTDREG.CPP
 WINVER not defined. Defaulting to 0x0501 (Windows XP and Windows .NET Server)
**OPTION** WIN32=Building for 32-bit Windows
USTDNEW.CPP
**OPTION** WIN32=Building for 32-bit Windows
STDREG.CPP
 WINVER not defined. Defaulting to 0x0501 (Windows XP and Windows .NET Server)
**OPTION** WIN32=Building for 32-bit Windows
STDNEW.CPP
**OPTION** WIN32=Building for 32-bit Windows
SetupConfigPage.cpp
 WINVER not defined. Defaulting to 0x0501 (Windows XP and Windows .NET Server)
**OPTION** WIN32=Building for 32-bit Windows
SCCfgDlg.cpp
 WINVER not defined. Defaulting to 0x0501 (Windows XP and Windows .NET Server)
ScanId.cpp
pyxsheet.cpp
PyxPosId.cpp
MsgBox.cpp
FTbio.cpp
FIUBIO.CPP
 WINVER not defined. Defaulting to 0x0501 (Windows XP and Windows .NET Server)
FIUBIO.CPP(1456) : warning C4244: '=' : conversion from '__time64_t' to 'time_t', possible loss of data
DevTypePg.cpp
 WINVER not defined. Defaulting to 0x0501 (Windows XP and Windows .NET Server)
CGray8Dib.cpp
CardScan.cpp
 WINVER not defined. Defaulting to 0x0501 (Windows XP and Windows .NET Server)
bioutils.cpp
 WINVER not defined. Defaulting to 0x0501 (Windows XP and Windows .NET Server)
BioSet.cpp
 WINVER not defined. Defaulting to 0x0501 (Windows XP and Windows .NET Server)
BioDb.cpp
BioDb.cpp(508) : warning C4244: '=' : conversion from '__time64_t' to 'time_t', possible loss of data
BIO.CPP
 WINVER not defined. Defaulting to 0x0501 (Windows XP and Windows .NET Server)
**OPTION** WIN32=Building for 32-bit Windows
BIO.CPP(1202) : warning C4244: '=' : conversion from '__time64_t' to 'time_t', possible loss of data
BIO.CPP(1319) : warning C4244: '=' : conversion from '__time64_t' to 'time_t', possible loss of data
APPSRC.CPP
 WINVER not defined. Defaulting to 0x0501 (Windows XP and Windows .NET Server)
Compiling resources...
Linking...
LINK : fatal error LNK1181: cannot open input file '.\pyxposid___win32_release_sybase9\Sqlbio.obj'
 Results      Build log was saved at "file://c:\workspaces\Borg\Main\BioID\Release\BuildLog.htm"
PyxPosId - 1 error(s), 5 warning(s) 

1 Ответ

1 голос
/ 09 ноября 2011

Видимо, есть проблема с чувствительностью к регистру.Я перестал использовать $(InputName) и жестко закодировал имя в своем vcproj, чтобы оно совпадало везде.

Только чтобы вы все знали, я не собираюсь открывать заявку на устранение неполадок с MS для 8-летней разработкиокружающая среда.

...