WIN32 手動編譯
前言
我們編譯的相關工程目錄如下:
- Main.cpp 原始碼
- Project1.rc 資原始檔
- resource.h 資源標頭檔案定義
我們簡單看下原始碼Main.cpp
就是一個簡單的帶選單的UI
介面程式碼
編譯cpp 為 obj
cl /c /EHsc Main.cpp
引數說明:
/c
編譯不連線
/EHsc
異常處理
上述命令會把cpp的中所有標頭檔案展開,編譯成obj
彙編檔案
標頭檔案的尋找優先順序:
如果是以#include<>
引入的那麼首先會在環境變數中查詢。對應的環境遍歷名為 include
.
筆者環境變數輸出圖:
#include""
首先會到當前編譯的命令環境檔案目錄查詢(比如你的工程在c:/project
,那麼會在c:/project
下自動查詢)
如果需要指定標頭檔案位置請使用 -IXXXXXXX
引數,XXXX
為標頭檔案所在目錄 如-IC:/project/includes
.
編譯rc檔案
Project1.rc
檔案是WIN32定義資源的檔案,你可以使用rc編譯器編譯成字尾為xxx.res
的檔案
如下圖
連結
link /subsystem:windows User32.lib Main.obj Project1.res
/subsystem:windows
告訴連結器生產一個win32
介面程式
User32.lib
由於我們使用了windows
相關函式所以必須告訴編譯器其編譯後庫檔案
連結相關庫檔案位置說明:
如果沒有說明具體的庫檔案位置那麼將會將會從環境變數LIB
從查詢
相關文章
- 自己動手編譯OpenJDK編譯JDK
- 越獄手記:手動編譯安裝 Electra編譯
- Java動態編譯優化——提升編譯速度(N倍)Java編譯優化
- 編譯lua動態庫編譯
- Qt編譯MySQL驅動QT編譯MySql
- iOS自動化編譯打包iOS編譯
- 精讀《手寫SQL編譯器-回溯》SQL編譯
- 手撕Vue-編譯指令資料Vue編譯
- C語言編譯器手機版C語言編譯
- [譯] 如何手動啟動 Angular 程式Angular
- 自己動手,在macOS High Sierra中編譯一個可debug的JDKMac編譯JDK
- win32下彙編程式碼結構學習Win32
- Jack's第一個Win32彙編程式HelloWorldWin32
- Jack整理的Win32彙編基礎知識Win32
- 跟我把Kali Nethunter編譯至任意手機編譯
- 編譯打包自己的雲手機(redroid)映象編譯
- 手寫 Vue2 系列 之 編譯器Vue編譯
- Dubbo原始碼之動態編譯原始碼編譯
- Java動態編譯和熱更新Java編譯
- Java編譯與反編譯Java編譯
- 有關Linux的可執行程式——動態編譯、靜態編譯、readelfLinux行程編譯
- libusb android ndk編譯--編譯mipsAndroid編譯
- hadoop編譯—+2.x編譯Hadoop編譯
- N1064編譯鏈編譯編譯
- unbuntu更新Python3版本到最新,安裝依賴手動編譯Python編譯
- 精讀《手寫 SQL 編譯器 - 詞法分析》SQL編譯詞法分析
- 精讀《手寫 SQL 編譯器 - 語法樹》SQL編譯
- 精讀《手寫 SQL 編譯器 - 文法介紹》SQL編譯
- 精讀《手寫 SQL 編譯器 – 文法介紹》SQL編譯
- 精讀《手寫 SQL 編譯器 - 語法分析》SQL編譯語法分析
- 精讀《手寫 SQL 編譯器 - 錯誤提示》SQL編譯
- 精讀《手寫 SQL 編譯器 – 詞法分析》SQL編譯詞法分析
- mingw下編譯zlib quazip動態庫編譯
- 深入理解Java的動態編譯Java編譯
- GraphJin:GraphQL自動編譯轉為SQL編譯SQL
- Centos7.3編譯RAID驅動(一)CentOS編譯AI
- 編譯編譯
- JIT-動態編譯與AOT-靜態編譯:java/ java/ JavaScript/Dart亂談編譯JavaScriptDart