導航:首頁 > 源碼編譯 > 命令行執行vs編譯

命令行執行vs編譯

發布時間:2024-07-25 15:10:30

Ⅰ 如何在Visual Studio中利用命令行集成Dotfuscator混淆處理

首先在Visual Studio中打開Dotfuscator:點擊菜單欄中的 工具 > PreEmptive Protection - Dotfuscator 打開Dotfuscator。

此處默認新建了Dotfuscator項目,建議先進行保存,將文件保存至你要混淆項目的解決方案文件夾中,如,個人保存的位置為: E:/Projects/OpenSourceProject/ReferenceDoc/Dotfuscator/Samples/DotfuscatorSample/DotfuscatorSample.xml

保存到解決方案文件夾並非必須,此處如此處理可以為了後面進一步處理更加方便。

添加待混淆文件,如圖所示:

修改文件路徑,將文件路徑修改為如下圖所示:點擊 屬性 ,查看 項目屬性 - configdir (就是之前的保存位置),然後切換回 輸入 ,點擊輸入中第三個按鈕 編輯輸入 (那支筆),將路徑中與 configdir 匹配的部分替換為 ${configdir} (注意是大括弧)。

處理此步驟亦不是必須的,這樣處理的原因是為了讓我們的配置與本地無關(相對路徑),方便其他人合作使用。


至此,基本配置就可以了,點擊生成項目就可以進行混淆了。至於其他更多配置見官方文檔。

本地可以直接在Dotfuscator工具中點擊菜單欄中的 幫助 > 幫助目錄 (此為中文文檔,基礎的配置基本都有)。

幫助文件本地目錄參考(中文幫助): C:/Program Files (x86)/Microsoft Visual Studio 14.0/PreEmptive Solutions/Dotfuscator and Analytics Community Edition/zh-Hans

配置Visual Studio命令調用Dotfuscator 主要操作就是編輯生成後事件:右擊項目 屬性 ,切換到 生成事件 頁面,編輯 後期生成事件命令行 ,添加如下代碼:

此處為了保證只有在Release的模式下使用混淆,故添加了Release判斷。

if $(ConfigurationName)==Release "C:/Program Files (x86)/Microsoft Visual Studio 14.0/PreEmptive Solutions/Dotfuscator and Analytics Community Edition/dotfuscatorcli.exe" /q "$(SolutionDir)DotfuscatorSample.xml"

代碼解釋:dotfuscator命令行工具+參數+項目混淆配置文件;其中配置文件之前保存到解決方案文件夾下,故此出可以直接用解決方案文件目錄來索引。

代碼中唯一不足就是命令行工具使用了絕對路徑,vs中的宏參數沒有可以直接使用的,若讀者有啥好方法將此變為相對路徑,望通知。 —— 但關於系統中添加環境變數的法子就不要了,個人不喜。

如果你在此處下一步需要進一步的打包處理,而你又需要Debug模式下一樣可以打包測試。如,本人使用WiX打包,需要配置文件路徑,方便一點就是要配置為生成路徑,但是release模式下,需要將混淆的打包進去,而非直接生成的文件。此時,你不能改打包配置(改路徑的話,debug會用不了),所以,你需要在將混淆過的文件拷貝到原來的release生成目錄。所以我最後完整的生成事件就是如下代碼了:

注意:經測試,如果在Dotfuscator中將生成路徑設為文件來源路徑,可以生成還會自動覆蓋,但軟體會用不了,具體原因不明。

if $(ConfigurationName)==Release "C:/Program Files (x86)/Microsoft Visual Studio 14.0/PreEmptive Solutions/Dotfuscator and Analytics Community Edition/dotfuscatorcli.exe" /q "$(SolutionDir)DotfuscatorSample.xml" if $(ConfigurationName)==Release x /e /y "$(SolutionDir)Dotfuscated/*.*" "$(TargetDir)"

代碼中的目錄可以見Dotfuscator配置的生成目錄:

Ⅱ 如何在windows系統的cmd命令行下調用VS編譯

1、桌面空白右鍵,選擇新建---快捷方式; 2、輸入cmd,點擊下一步; 3、可修改名稱,點擊完成; 4、右鍵新建的cmd快捷方式,選擇屬性; 5、點擊布局選項卡,屏幕緩存區大小和窗口大小都按照你顯示器解析度設置,點擊確定;

Ⅲ vs 命令行編譯靜態庫

_declspec(dllexport) void test_print(char* sz_input);
這是動態鏈接庫 -- dllexport ,dll是動態鏈接庫。
不是你說的靜態庫。
動態鏈接庫,應用程序調用它,編譯鏈接時要有.lib, 運行時要有.dll

Debug\ -- 給別的程序用,要用 Release\,不能用 Debug\

char * __ptr64 sz_input;
__ptr64 -- 32位機上,指針sz_input截斷為32位.
char * __ptr32 sz_input;
__ptr32 -- 64位機上,指針sz_input變32位

wchar_t,_MBCS -- 表明你要用雙位元組字元,那麼程序就不應當用 單位元組char 型。如果你要編的不是要用雙位元組字元,那麼 就不要 wchar_t,_MBCS。

Ⅳ 如何用vs和makefile文件進行編譯

運行cmd.exe (or command.com in win9x)->進到vc/bin目錄->運行vc-vars32.bat->進到makefile 所在的目錄->nmake /f makefile
從sourceforge上下載下來的libjpeg源代碼中有一個makefile.vc的文件,可以通過nmake /f makefile.vc [nodebug=1]來編譯libjpeg,但是只能編譯靜態庫,如果需要編譯dll以便在emacs等程序中使用的話,需要修改makefile.vc和jmorecfg.h文件。在makefile.vc文件中添加編譯dll規則:
以下內容為程序代碼:
libjpeg.lib: $(LIBOBJECTS) $(RM) libjpeg.lib lib -out:libjpeg.lib $(LIBOBJECTS) #
添加以下這行 libjpeg.dll: $(LIBOBJECTS) $(RM) libjpeg.dll link -dll -out:libjpeg.dll $(LIBOBJECTS) 在jmorecfg.h中添加#define _WIN32_#define JPEG_DLL 然後nmake /f makefile.vc nodebug=1就可以編譯了。
將makefile復制為一個.mak文件,然後用VC打開即可!
.mak 就是一個makefile
可以指定怎樣編譯(命令行,必須先設置VC命令行環境)
vcvars32.bat可設置環境,在vc98/bin下 nmake /f XXXX.mak
如果有一個makefile就只要nmake就可以了。

Ⅳ VS2017在Windows10下如何運用命令行編譯運行

如果是 dotnet framework 項目,使用 msbuild.exe 進行編譯
如果是 dotnet Core 項目,用 dotnet 命令進行編譯

Ⅵ vs2013怎麼在命令行使用cl編譯

1. 「cl不是可用的內部命令或可執行程序」
----原因:環境變數Path沒有設置好。
----解決:在環境變數Path中添加VC的bin目錄。Path= D:\Microsoft Visual Studio 9.0\VC\bin。在D:\Microsoft Visual Studio 9.0\VC\ce\bin下還有其他一些編譯器,看名字是交叉編譯用的
2.「mspdb80.dll無法找到」
----原因:vs2008的VC\bin目錄下缺少msobj80.dll、mspdb80.dll、mspdbcore.dll、mspdbsrv.exe這四個文件。
----解決:在D:\Microsoft Visual Studio 9.0\Common7\IDE下復制這四個文件到VC\bin。
3.解決以上問題以後,可以直接在命令行的任何目錄下編譯C/C++文件了。可是又出現新狀況:
「fatal error: cannot open include file」
----原因:vs2008未設置include和lib的環境變數。
----解決:
3.1在環境變數里添加變數INCLUDE,包含進VC\Include和C:\Program Files\Microsoft SDKs\Windows\v6.0A\Include(這個是安裝vs時自動安裝在C盤的)兩個目錄
INCLUDE=D:\Microsoft Visual Studio 9.0\VC\include; C:\Program Files\Microsoft SDKs\Windows\v6.0A\Include
3.2添加變數LIB,包含進VC\lib和C:\Program Files\Microsoft SDKs\Windows\v6.0A\Lib(這個也是安裝vs時自動安裝在C盤的)兩個目錄:
LIB=D:\Microsoft Visual Studio 9.0\VC\lib; C:\Program Files\Microsoft SDKs\Windows\v6.0A\Lib

4.提示:fatal error LNK1104: 無法打開文件「kernel32.lib」,(在IDE裡面運行沒有問題,因為IDE中採用了另外的封裝了庫)
----原因:vs2008未設置include和lib的環境變數。
----解決:在環境變數里添加變數LIB,C:\Program Files\Microsoft SDKs\Windows\v6.0A\Lib
或者將kernel32.lib直接到vc的lib目錄下也可以

至此,問題終於解決了,hoho~o(∩_∩)o...
【Tips】
1.使用-GX選項時,2005的編譯器會提示GX已過時,使用-EHsc代替
cl : Command line warning D9035 : option 'GX' has been deprecated and will be re
moved in a future release
cl : Command line warning D9036 : use 'EHsc' instead of 'GX'
2.環境變數可以通過「我的電腦右鍵->高級->環境變數」設置。當然也有其它方法,欲知詳情請網路之。
【Ref】
http://blog.163.com/danshiming@126/blog/static/109412748201312703225352/(在命令行界面使用vs2005的cl )
http://hi..com/fymzone/blog/item/fdac1bfb9ba55f65034f5689.html(用vs2005編譯器cl在控制台下編譯)
http://hi..com/vanta/blog/item/f62035a80ec521b5cb130c3b.html(在cmd中鍵入cl執行編譯時會出現mspdb80.dll無法找到的情況)

閱讀全文

與命令行執行vs編譯相關的資料

熱點內容
貓和老鼠哪個app好玩 瀏覽:716
網易有愛登錄器在哪個文件夾 瀏覽:244
iis6壓縮 瀏覽:140
redisphp擴展mac 瀏覽:199
狀態鏈路演算法 瀏覽:316
毛豆app裡面購車合同在哪裡 瀏覽:563
程序員上臂式電腦 瀏覽:56
php檢測中文 瀏覽:101
壓縮性骨折半年 瀏覽:561
如何雲伺服器解壓文件 瀏覽:932
單片機93加9E的psw 瀏覽:723
福建少兒頻道哪個app可以看 瀏覽:393
印度加密代幣機票 瀏覽:420
哪個app可以看江西2套 瀏覽:680
哪個小說app好用還免費 瀏覽:666
win7ping命令 瀏覽:508
程序員看圖識演算法 瀏覽:950
vs設置遠程編譯 瀏覽:600
速騰汽車怎麼給安卓手機充電 瀏覽:271
蘋果安卓換機用什麼軟體好 瀏覽:263