vs批處理編譯
① 怎樣在win10中當前目錄下建立批處理文件編譯生成控制台64位C程序
這個東西是可以實現的,不過很麻煩,首先在win7系統中,以管理員許可權運行CMD,輸入 attrib -a -s -h -r c:\boot.ini 打開C盤復制boot.ini,再點粘貼出現副本boot.ini,比如你現在是默認XP先啟動,,把它重命名為xp.ini,然後在系統里把win7設置為優先啟動,再以管理員許可權運行CMD,輸入 attrib -a -s -h -r c:\boot.ini 打開C盤復制boot.ini,再點粘貼出現副本boot.ini,這時候把這個文件更名為win7.ini,再弄一個批處理文件將這兩個文件來回換成boot.ini文件就可以了
② VS2010編譯的時候報錯 不是內部或外部命令,也不是可運行的程序或批處理文件.
首先復制VS2010的安裝目錄
在我的電腦右鍵屬性-高級-環境變數-找到系統變數中的path在後面粘貼剛才復制的安裝目錄
注意在最後一個值得後面是否有英文狀態的分號
有就不加 沒有就加
例如
C:\windows\;C:\windows\system32\;安裝目錄;
③ 如何用批處理實現vc2010工程的編譯請高手指點,謝謝
用nmake.exe
命令語法如下:
NMAKE [option...] [macros...] [targets...] [@commandfile...]
說明:其中,options是NMAKE的選項,macros是在命令行中的宏定義,targets是NMAKE的目標文件列表,commandfile是包含命令行輸入的文本文件(或響應文件)。
NMAKE 使用指定 /F 選項的Makefile(生成文件,通常名字是makefile);如果未指定 /F 選項,則使用當前目錄下的Makefile。如果未指定Makefile,則 NMAKE 使用推理規則生成命令行 targets。
關鍵是這個makefile文件的編寫。給你個例子 參考
BIN = cppunit
DEBUG = 1
# dynamic dll 1, static lib 2, exe 3
TARGET_TYPE = 1
# thread model, 0 single, 1 multiple static, 2 multiple dll
THREAD_MODEL = 2
CPU = x86
UNICODE = 0
CINCLUDE_PATH = /I. /I..\..\include
LLIBS =
DLLFLAGS =
CFLAGS = /W4 /Zc:forScope /Zc:wchar_t /EHsc
CFLAGS = $(CFLAGS) $(CINCLUDE_PATH)
!IF "$(UNICODE)" == "1"
CFLAGS = $(CFLAGS) /D"_UNICODE" /D"UNICODE"
!ENDIF
LDFLAGS = /NOLOGO /MACHINE:$(CPU)
LDFLAGS = $(LDFLAGS) $(LLIBS)
TARGET =
!IF "$(DEBUG)" == "1"
TARGET = $(BIN)d
CFLAGS = $(CFLAGS) /Od /Ob0 /ZI /D"_DEBUG"
LDFLAGS = $(LDFLAGS) /DEBUG
!ELSE
TARGET = $(BIN)
CFLAGS = $(CFLAGS) /O2 /Ob1 /Zi /D"NDEBUG"
LDFLAGS = $(LDFLAGS) /OPT:REF /OPT:ICF
!ENDIF
LINK_TOOL =
!IF "$(TARGET_TYPE)" == "1"
LINK_TOOL = LINK /DLL /MANIFEST:NO
TARGET = $(TARGET).dll
!ELSEIF "$(TARGET_TYPE)" == "2"
LINK_TOOL = LIB
TARGET = $(TARGET).lib
!ELSE
TARGET = $(TARGET).exe
LINK_TOOL = LINK /MANIFEST:NO
!ENDIF
!IF "$(THREAD_MODEL)" == "1"
!IF "$(DEBUG)" == "0"
DLLFLAGS = /MT
!ELSE
DLLFLAGS = /MTd
!ENDIF
!ENDIF
!IF "$(THREAD_MODEL)" == "2"
!IF "$(DEBUG)" == "0"
DLLFLAGS = /MD
!ELSE
DLLFLAGS = /MDd
!ENDIF
!ENDIF
CFLAGS = $(CFLAGS) $(DLLFLAGS)
SRC = \
AdditionalMessage.cpp \
Asserter.cpp \
BeOsDynamicLibraryManager.cpp \
BriefTestProgressListener.cpp \
CompilerOutputter.cpp \
DefaultProtector.cpp \
DllMain.cpp \
DynamicLibraryManager.cpp \
.cpp \
Exception.cpp \
Message.cpp \
PlugInManager.cpp \
PlugInParameters.cpp \
Protector.cpp \
ProtectorChain.cpp \
RepeatedTest.cpp \
ShlDynamicLibraryManager.cpp \
SourceLine.cpp \
StringTools.cpp \
SynchronizedObject.cpp \
Test.cpp \
TestAssert.cpp \
TestCase.cpp \
TestCaseDecorator.cpp \
TestComposite.cpp \
TestDecorator.cpp \
TestFactoryRegistry.cpp \
TestFailure.cpp \
TestLeaf.cpp \
TestNamer.cpp \
TestPath.cpp \
TestPlugInDefaultImpl.cpp \
TestResult.cpp \
TestResultCollector.cpp \
TestRunner.cpp \
TestSetUp.cpp \
TestSuccessListener.cpp \
TestSuite.cpp \
TestSuiteBuilderContext.cpp \
TextOutputter.cpp \
TextTestProgressListener.cpp \
TextTestResult.cpp \
TextTestRunner.cpp \
TypeInfoHelper.cpp \
UnixDynamicLibraryManager.cpp \
Win32DynamicLibraryManager.cpp \
XmlDocument.cpp \
XmlElement.cpp \
XmlOutputter.cpp \
XmlOutputterHook.cpp
OBJECTS = $(SRC:.cpp=.obj)
all : $(TARGET)
$(TARGET) : $(OBJECTS)
$(LINK_TOOL) $(LDFLAGS) $(OBJECTS) /OUT:$(TARGET)
.c.obj::
$(CC) /c $(CFLAGS) $<
#
.cpp.obj::
$(CC) /c $(CFLAGS) $<
#
clean :
del /q $(TARGET)
del /q $(OBJECTS)
del /q *.pdb
del /q *.idb
能用ide還是盡量用ide吧,多方便。
④ C# 程序編譯時 執行方法
如果你使用vs編譯的話,可以使用項目屬性中的生成事件中可以在生成前或是生成後執行命令。
如果使用手工命令行編譯的話,可以做成批處理命令。
編譯程序csc本身只管編譯的事,它不會在編譯前或是編譯後做特別的事。這需要第三方的工具輔助.比如vs或是自己寫的批處理程序。
當然你也可以使用C#開發程序對代碼進行編譯然後在編譯前或是後執行一些命令。
⑤ UE如何調用VS編譯C\C++
UE配置VS稍微麻煩一點,主要是VS自身對命令編譯的支持不夠直接,需要先運行它自己的批處理設置環境變數。以VS 10的vc 2010為例,配置UE。
1. 菜單Advanced-> Tool Configuration....
2. 點擊Insert,然後Menu Item name裡面填寫VC(可自己修改);work directory填寫%p;command line是關鍵,填寫:
C:Progra~2Micros~2.0VCinvcvars32.bat && C:Progra~2Micros~2.0VCincl "%f"
說明: C:Progra~2Micros~2.0是我電腦裡面vc 2010的目錄的」短文件「名顯示,它的具體名稱各個電腦會不同,比如:C:Program Files (x86)Microsoft Visual Studio 10.0VCin
關鍵是找到vcbars32.bat和cl.exe的位置,----- 進入命令行,從C:盤起,用下面的命令羅列目錄名稱:
c:>dir/ad/x
每發現一個,用」cd 短目錄名稱「進入,然後重復上面的dir命令,直到找到visual studio里的bin目錄位置.
3. 選擇option,選擇output to list box和capture output兩項,然後OK保存退出。
4.編輯源碼,然後再從Advanced從選擇步驟2裡面填寫的VC菜單項,點擊運行,就可編譯了。
UE的編譯環境沒有其同門UEStudio來的方便,如果有興趣,參見網路知道的問題519730341408692205, 那個也我對UEStudio下VC設置的回答。
如果是學習C/C++語言也就罷了,否則VC下的開發,還是用VS自己的IDE或命令行環境吧。
⑥ 如何編寫一個編譯c#控制台應用程序的批處理程序
不知道你有沒有使用過ANT,你可以創建ANT腳本來構建你的應用程序。
如果不是很了解,也不願意編寫的話,我介紹你一款可視化的編寫ANT腳本的軟體(下載30天使用的License),你可能會主要用到ant腳本的exec命令。
http://www.placidsystems.com/virtualant/Default.aspx
⑦ VS2017批處理文件編譯c文件出錯在哪
1、 REM REM 是個注釋命令一般是用來給程序加上註解的,該命令後的內容在程序執行的時候將不會被顯示和執行。例: REM 你現在看到的就是註解,這一句將不會被執行。在以後的例子中解釋的內容都REM 會放在REM後面。請大家注意。 2、 ECHO ECHO 是一個回顯命令主要參數有OFF和 ON,一般用ECHO message來顯示一個特定的消息 。例: Echo off Rem 以上代表關閉回顯即不顯示所執行的命令 Echo 這個就是消息。 Rem 以上代表顯示「這就是消息」這列字元執行結果: C:\>ECHO.BAT 這個就是消息。
⑧ 怎樣在win10家庭版當前目錄下建立批處理文件編譯鏈接生成控制台64位C程序最簡單地舉一例
1、 REM
REM 是個注釋命令一般是用來給程序加上註解的,該命令後的內容在程序執行的時候將不會被顯示和執行。例:
REM 你現在看到的就是註解,這一句將不會被執行。在以後的例子中解釋的內容都REM 會放在REM後面。請大家注意。
2、 ECHO
ECHO 是一個回顯命令主要參數有OFF和 ON,一般用ECHO message來顯示一個特定的消息 。例:
Echo off
Rem 以上代表關閉回顯即不顯示所執行的命令
Echo 這個就是消息。
Rem 以上代表顯示「這就是消息」這列字元
執行結果:
C:\>ECHO.BAT
這個就是消息。
⑨ win10中批處理編譯單個c文件生成控制台程序,能否像vs工程編譯出來的release版本一樣小執行速度一樣快
應該不會,而且並不方便
⑩ 同時裝VC6 VS2010,查看編譯器版本
先調用VS2010 的SDK 的環境設置, 後進行CL命令
VS2010 的安裝後會自動添加一個%VS100COMNTOOLS%的環境變數, 利用該變數設定的安裝目錄,可以定位VS2010提供的環境變數設定批處理文件路徑(%VS100COMNTOOLS%..\..\vc\vcvarsall.bat)
以下是一個在命令行中編譯工程的批處理示例(build.bat), 希望能對你有所幫助
set "curr_dir=%cd%"
call "%VS100COMNTOOLS%..\..\vc\vcvarsall.bat" x86
cd %curr_dir%
msbuild %curr_dir%\project\temp.vcxproj "Release|Win32"