- visual-studio/
- Visual studio 使用Build.exe和dirs/sources以及Visual Studio 2010/11构建
Visual studio 使用Build.exe和dirs/sources以及Visual Studio 2010/11构建
Visual studio 使用Build.exe和dirs/sources以及Visual Studio 2010/11构建,visual-studio,visual-c++,msbuild,build,Visual Studio,Visual C++,Msbuild,Build,有没有办法告诉VisualStudio2010(或VisualStudio11开发者预览版)使用源文件
是否有任何工具可用于将nmake/dirs/sources转换为MSBuild
我真的想在Visual Studio 11开发人员预览代码分析工具上使用一个非常古老的C++解决方案,它目前甚至不能接近VisualStudio./P>中的编译。
以下是众多源文件之一的示例:
!INCLUDE $(INETROOT)\build\paths.all
!INCLUDE $(INETROOT)\bui
有没有办法告诉VisualStudio2010(或VisualStudio11开发者预览版)使用源文件
是否有任何工具可用于将nmake/dirs/sources转换为MSBuild
我真的想在Visual Studio 11开发人员预览代码分析工具上使用一个非常古老的C++解决方案,它目前甚至不能接近VisualStudio./P>中的编译。
以下是众多源文件之一的示例:
!INCLUDE $(INETROOT)\build\paths.all
!INCLUDE $(INETROOT)\build\sources.all
TARGETNAME=CSDWCtlg
TARGETTYPE=DYNLINK
DLLENTRY=DllMainCRTStartupCustom
DLLDEF=
USE_NATIVE_EH=1
NO_NTDLL=1
NTTARGETFILE0=$(EXPORTED_FILES)
INCLUDES= \
$(INCLUDES); \
$(SDK_INC_PATH); \
$(ATL_INC_PATH); \
$(CSSTORAGE)\inc; \
$(CSSTORAGE)\util\inc; \
$(CSSTORAGE)\dbg; \
$(CSSTORAGE)\msg; \
$(CSSTORAGE)\intf\idl; \
$(CSSTORAGE)\ctlg; \
$(CSSTORAGE)\provider; \
$(CSSTORAGE)\dsproviders\inc\; \
$(CSCOMMON)\rockall4\Build\Rockall\Include; \
$(CSCOMMON)\rockall4\Code\Rockall\Interface; \
$(CSCOMMON)\kbase; \
$(CSCOMMON)\inc; \
# goes to both RC compiler and C compiler
# RUN_WPP=$(SOURCES) -func:{LEVEL=Error}ErrorTrace(ERR,MSG,...) -func:{LEVEL=Debug}DebugTrace(DBG,MSG,...)
C_DEFINES=$(C_DEFINES) /D_UNICODE /DUNICODE /DPROJ_METABASE /DCSTRACE_CSDWCTLG /D_CTLG_DIAGNOSTIC#1
USER_C_FLAGS=$(USER_C_FLAGS) -D_CTLG_DIAGNOSTIC=1 -GR -D_WIN32_WINNT=0x0500 -DOLEDBVER=0x0250
# check for 64-bit compatiblitly
!if "$(PROCESSOR_ARCHITECTURE)"=="x86"
USER_C_FLAGS = $(USER_C_FLAGS) /Wp64
!endif
# The line below includes the common build flags.
# It modifies the USER_C_FLAGS variable by appending the 'project' level flags.
# Be sure to use the syntax USER_C_FLAGS=$(USER_C_FLAGS) 'flags' if you use USER_C_FLAGS after this include.
!INCLUDE $(CSSTORAGE)\inc\userFlags$(DCRT).inc
USE_MSVCRT=1
PRECOMPILED_CXX=1
PRECOMPILED_INCLUDE=pch.hpp
PRECOMPILED_PCH=pch_hpp.pch
PRECOMPILED_OBJ=pch_hpp.obj
SOURCES=\
csdwctlg.rc \
pch.cpp \
dll.cpp \
crow.cpp \
ctlgdump.cpp \
ctlghandler.cpp \
ctlgobj.cpp \
ctlgobjaccess.cpp \
ctlgobjclsdef.cpp \
ctlgobjdefs.cpp \
ctlgobjget.cpp \
ctlgobjkeydef.cpp \
ctlgobjmemdef.cpp \
ctlgobjrel.cpp \
ctlgobjrow.cpp \
ctlgobjset.cpp \
ctlgobjtbl.cpp \
ctlgobjtbls.cpp \
ctlgobjtypedef.cpp \
ctlgobjview.cpp \
ctlgpersist.cpp \
ctlgresolve.cpp \
ctlgresolve2.cpp \
ctlgpartresolve.cpp \
ctlgaggrresolve.cpp \
ctlgfilterresolve.cpp \
ctlgvalidate.cpp \
expschema.cpp \
mbcatalog.cpp \
mbictlgchg.cpp \
schemamgr.cpp \
sqlpathtrans.cpp \
TARGETLIBS= \
$(DEFAULTLIBS) \
$(SDK_LIB_PATH)\ole32.lib \
$(SDK_LIB_PATH)\oleaut32.lib \
$(SDK_LIB_PATH)\uuid.lib \
$(SDK_LIB_PATH)\urlmon.lib \
$(TARGETPATH)\*\CSDWIntf.lib \
$(TARGETPATH)\*\CSDWUtil.lib \
$(SDK_LIB_PATH)\msi.lib \
$(TARGETPATH)\*\csrockall.lib \
$(TARGETPATH)\*\CSDWSrvrDLL.lib \
$(SDK_LIB_PATH)\Kernel32.lib \
$(SDK_LIB_PATH)\user32.lib \
$(SDK_LIB_PATH)\Advapi32.lib \
$(CRT_LIB_PATH)\oldnames.lib \
$(SDK_LIB_PATH)\atls$(DCRT).lib \
# For Binplacing
MISCFILES= \
.\SCHEMA\* \
!包括$(INETROOT)\build\path.all
!包括$(INETROOT)\build\sources.all
TARGETNAME=CSDWCtlg
TARGETTYPE=DYNLINK
DLLENTRY=dllmaincrtstartupscustom
DLLDEF=
使用_NATIVE_EH=1
否\u NTDLL=1
NTTARGETFILE0=$(导出的_文件)
包括=\
美元(包括)\
$(SDK_INC_PATH)\
$(ATL_INC_PATH)\
$(CSSTORAGE)\inc\
$(CSSTORAGE)\util\inc\
$(CSSTORAGE)\dbg\
$(CSSTORAGE)\msg\
$(CSSTORAGE)\intf\idl\
$(CSSTORAGE)\ctlg\
$(CSSTORAGE)\provider\
$(CSSTORAGE)\dsproviders\inc\\
$(CSCOMMON)\rockall4\Build\Rockall\Include\
$(CSCOMMON)\rockall4\Code\Rockall\Interface\
$(CSCOMMON)\kbase\
$(CSCOMMON)\inc\
#转到RC编译器和C编译器
#运行_WPP=$(源)-func:{LEVEL=Error}ErrorTrace(ERR,MSG,…)-func:{LEVEL=Debug}DebugTrace(DBG,MSG,…)
C_DEFINES=$(C_DEFINES)/D_UNICODE/DUNICODE/DPROJ_元数据库/DCSTRACE_CSDWCTLG/D_CTLG#u诊断#1
USER_C_FLAGS=$(USER_C_FLAGS)-D_CTLG_DIAGNOSTIC=1-GR-D_WIN32_WINNT=0x0500-DOLEDBVER=0x0250
#检查64位兼容性
!如果“$(处理器体系结构)”==“x86”
用户\u C\u标志=$(用户\u C\u标志)/Wp64
!恩迪夫
#下一行包括通用构建标志。
#它通过附加“项目”级别的标志来修改USER_C_FLAGS变量。
#如果在此包含之后使用USER_C_标志,请确保使用语法USER_C_标志=$(USER_C_标志)'FLAGS'。
!包括$(CSSTORAGE)\inc\userFlags$(DCRT).inc
使用_MSVCRT=1
预编译_CXX=1
预编译_INCLUDE=pch.hpp
预编译的\u PCH=PCH\u hpp.PCH
预编译_OBJ=pch_hpp.OBJ
来源=\
csdwctlg.rc\
pch.cpp\
dll.cpp\
crow.cpp\
ctlgdump.cpp\
ctlghandler.cpp\
ctlgobj.cpp\
ctlgobjaccess.cpp\
ctlgobjclsdef.cpp\
ctlgobjdefs.cpp\
ctlgobjget.cpp\
ctlgobjkeydef.cpp\
ctlgobjmemdef.cpp\
ctlgobjrel.cpp\
ctlgobjrow.cpp\
ctlgobjset.cpp\
ctlgobjtbl.cpp\
ctlgobjtbls.cpp\
ctlgobjtypedef.cpp\
ctlgobjview.cpp\
ctlgpersist.cpp\
ctlgresolve.cpp\
ctlgresolve2.cpp\
ctlgpartresolve.cpp\
ctlgargresolve.cpp\
ctlgfilterresolve.cpp\
ctlgvalidate.cpp\
expschema.cpp\
mbcatalog.cpp\
mbictlgchg.cpp\
schemamgr.cpp\
sqlpathtrans.cpp\
TARGETLIBS=\
$(默认libs)\
$(SDK\u LIB\u PATH)\ole32.LIB\
$(SDK\u LIB\u PATH)\oleaut32.LIB\
$(SDK\u LIB\u PATH)\uuid.LIB\
$(SDK\u LIB\u PATH)\urlmon.LIB\
$(TARGETPATH)\*\CSDWIntf.lib\
$(TARGETPATH)\*\CSDWUtil.lib\
$(SDK\u LIB\u PATH)\msi.LIB\
$(TARGETPATH)\*\csrockall.lib\
$(TARGETPATH)\*\csdwsrvrdl.lib\
$(SDK\u LIB\u PATH)\Kernel32.LIB\
$(SDK\u LIB\u PATH)\user32.LIB\
$(SDK\u LIB\u PATH)\Advapi32.LIB\
$(CRT\u LIB\u PATH)\oldnames.LIB\
$(SDK\u LIB\u PATH)\atls$(DCRT).LIB\
#用于装箱
杂项文件=\
.\SCHEMA\*\
有什么建议吗
更新:我找到了WDK的一部分。它用于驱动程序开发和测试。我不确定它是否对我必须做的事情(不是司机)有效,但我将尝试一下。我已经找到了WDK的一部分。它用于驱动程序开发和测试
为了让工具完成转换,需要对源文件进行一些手动调整。它不是万能的,但有助于使事情步入正轨。我找到了WDK的一部分。它用于驱动程序开发和测试
为了让工具完成转换,需要对源文件进行一些手动调整。它不是万能的,但有助于使事情步入正轨。我怀疑它会奏效。微软有各种各样的内部工具来实现这一点已经有一段时间了,我敢打赌这是其中一种工具的产品化版本。我过去成功地使用了内部版本。@NickNieslanik我使用nmake2msbuild.exe取得了一些成功,减少了许多编译器错误。这仍然不是100%,这是肯定的,但它似乎为我做了很多工作。很高兴听到。一般来说,微软的内部工具总是需要一些手动清理,所以我听说这是必需的,并不感到惊讶,但至少它在大部分方面都能帮到你。我怀疑它会起作用。微软有各种各样的内部工具来实现这一点已经有一段时间了,我敢打赌这是其中一种工具的产品化版本。我过去成功地使用了内部版本。@NickNieslanik我使用nmake2msbuild.exe取得了一些成功,减少了许多编译器错误。这仍然不是100%,这是肯定的,但它似乎为我做了很多工作。很高兴听到。一般来说,微软的内部工具总是需要一些手动清理,所以我并不惊讶于它是必需的,但至少它能让你在大部分的过程中做到这一点。