日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > c/c++ >内容正文

c/c++

深入探究VC —— 链接器link.exe(4)【转】http://blog.csdn.net/wangningyu/article/details/4849452...

發布時間:2024/1/17 c/c++ 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 深入探究VC —— 链接器link.exe(4)【转】http://blog.csdn.net/wangningyu/article/details/4849452... 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

在程序編譯完成后,生成的文件是以.obj為擴展名的對象文件,link.exe是將這些對象文件與庫鏈接起來以創建可執行文件或動態鏈接庫文件的工具。

?

link.exe的輸入文件包括obj文件、lib文件、exp文件、def文件、res文件、txt文件、ilk文件等等,而輸出的文件一般是exe文件、dll文件、sys文件等可執行程序文件。

?

1、命令行參數

link.exe運行參數如下:

LINK [options] files

參數包括選項和文件名,選項和文件名可按任意順序指定。link會首先處理選項,然后是文件。各參數間必須使用一個或多個空格或制表符來分隔。

?

2、輸入文件

參數中的files是指鏈接器的輸入文件。用戶可以使用文件名指定絕對路徑或相對路徑,可在文件名中使用通配符。如果用戶指定的文件名沒有擴展名,則默認假設擴展名為obj。link.exe對文件格式的判斷不是根據文件擴展名,而是判斷文件的內容。

比如之前【深入探究VC —— 編譯器cl.exe(1)】代碼中:

?

[cpp]?view plaincopyprint?
  • //?File???Name:?Hello.c?????
  • //?Description:?First?Win32?Application?????
  • //?by?Koma?2009-11-18?22:05?????
  • ????
  • #include?<windows.h>?????
  • #pragma?comment(lib,"user32.lib")?????
  • ????
  • int?WINAPI?WinMain(HINSTANCE?hInstance,?HINSTANCE?hPrevInstance,?LPSTR?pszCmdLine,?int?cmdShow)?????
  • {?????
  • ????MessageBox(NULL,"Hello?World?!","Test",MB_OK);?????
  • ????return?0;?????
  • }??
  • ?

    ?

    Hello.c完成編譯后會生成Hello.obj文件,然后將Hello.obj與系統庫文件鏈接起來,最終生成可執行文件。命令行參數為:

    link Hello.obj /subsystem:windows

    ?

    注意,在之前【深入探究VC —— 編譯器cl.exe(1)】代碼中有這樣一行代碼:

    ?

    [cpp]?view plaincopyprint?
  • #pragma?comment(lib,"user32.lib")????
  • ?

    如果在輸入文件中指明了user32.lib,那么這一行是沒有必要的。但是如果將參數里這一段鏈接user32.lib去掉,而代碼文件中又不包括 上面這一行,則編譯器會報錯。

    ?

    如果編譯器報告錯誤“LNK2019:無法解析的外部符號......”,那么通常是由于沒有將鏈接這些符號所需要的輸入庫文件加入到輸入文件參數中,比如調用MessageBox API就必須在鏈接時輸入user32.lib。

    ?

    3、鏈接器選項

    選項前需加“選項說明符”(一個短劃線‘-’或一個正斜杠‘/’),然后是該選項的名稱。如果選項帶參數,參數在冒號(:)后指定選項的參數。如果參數是數值,可以使用十進制、或C語言表示法。與編譯器cl.exe不同,鏈接器的選項名及其關鍵字或文件名參數不區分大小寫,但用作參數的標識符區分大小字書。

    ?

    選項中很多涉及Windows可執行文件的格式問題,比如節、導入表、導出表、基地址等,以及Windows可執行文件中EXE文件、DLL文件的區別與作用、可執行文件的加載以及API函數動態鏈接過程。(Windows可執行文件編譯與鏈接的內部原理,請自行查閱相關資料吧!)

    ?

    選項

    用途

    @

    指定響應文件

    /ALIGN

    指定每一節的對齊方式

    /ALLOWBIND

    指定 DLL 不能綁定

    /ALLOWISOLATION

    指定清單查找的行為。

    /ASSEMBLYDEBUG

    將?DebuggableAttribute?添加到托管映像中。

    /ASSEMBLYLINKRESOURCE

    創建指向托管資源的鏈接。

    /ASSEMBLYMODULE

    指定應將 Microsoft 中間語言 (MSIL) 模塊導入到程序集中

    /ASSEMBLYRESOURCE

    將托管資源文件嵌入到程序集

    /BASE

    為程序設置基址

    /CLRIMAGETYPE

    設置 CLR 映像的類型(IJW 映像、純映像或安全映像)。

    /CLRSUPPORTLASTERROR

    保留通過 P/Invoke 機制調用的函數的上一個錯誤代碼。

    /CLRTHREADATTRIBUTE

    指定要應用于 CLR 程序入口點的線程屬性。

    /CLRUNMANAGEDCODECHECK

    /CLRUNMANAGEDCODECHECK 指定鏈接器是否將 SuppressUnmanagedCodeSecurity 屬性應用于鏈接器生成的、從托管代碼調用到本機 DLL 中的 PInvoke 存根 (stub)。

    /DEBUG

    創建調試信息

    /DEF

    將模塊定義 (.def) 文件傳遞到鏈接器

    /DEFAULTLIB

    在解析外部引用時搜索指定的庫

    /DELAY

    控制 DLL 的延遲加載

    /DELAYLOAD

    導致延遲加載指定的 DLL

    /DELAYSIGN

    對程序集進行部分簽名。

    /DLL

    生成 DLL

    /DRIVER

    創建 Windows NT 核心模式驅動程序

    /DYNAMICBASE

    使用 Windows Vista 的地址空間布局隨機化 (ASLR) 功能,指定是否生成可在加載時隨機重新設定基址的可執行文件映像。

    /ENTRY

    設置起始地址

    /errorReport

    向 Microsoft 報告內部鏈接器錯誤。

    /EXPORT

    導出函數

    /FIXED

    創建只能在其首選基址加載的程序

    /FORCE

    強制完成鏈接,即使符號無法解析或已定義多次

    /FUNCTIONPADMIN

    創建可熱修補的映像。

    /HEAP

    設置堆的大小(以字節為單位)

    /IDLOUT

    指定 .idl 文件和其他 MIDL 輸出文件的名稱

    /IGNOREIDL

    防止將屬性信息處理到 .idl 文件中

    /IMPLIB

    重寫默認的導入庫名

    /INCLUDE

    強制符號引用

    /INCREMENTAL

    控制增量鏈接

    /KEYCONTAINER

    指定用來為程序集簽名的密鑰容器。

    /KEYFILE

    指定用來為程序集簽名的密鑰或密鑰對。

    /LARGEADDRESSAWARE

    通知編譯器應用程序支持大于 2 GB 的地址

    /LIBPATH

    允許用戶重寫環境庫路徑

    /LTCG

    指定鏈接時代碼生成

    /MACHINE

    指定目標平臺

    /MANIFEST

    創建并行清單文件。

    /MANIFESTDEPENDENCY

    在清單文件中指定 <dependentAssembly> 節。

    /MANIFESTFILE(命名清單文件)

    更改清單文件的默認名稱。

    /MANIFESTUAC

    指定是否將用戶帳戶控制 (UAC) 信息嵌入到程序清單中。

    /MAP

    創建映射文件

    /MAPINFO

    包括映射文件中的指定信息

    /MERGE

    合并節

    /MIDL

    指定 MIDL 命令行選項

    /NOASSEMBLY

    取消創建 .NET Framework 程序集

    /NODEFAULTLIB

    在解析外部引用時忽略所有(或指定的)默認庫

    /NOENTRY

    創建純資源 DLL

    /NOLOGO

    取消顯示啟動版權標志

    /NXCOMPAT

    將可執行文件標記為經測試與 Windows 數據執行保護功能兼容。

    /OPT

    控制 LINK 優化

    /ORDER

    按預先確定的順序將 COMDAT 放置到圖像中

    /OUT

    指定輸出文件名

    /PDB

    創建程序數據庫 (PDB) 文件

    /PDBSTRIPPED

    創建沒有私有符號的程序數據庫 (PDB) 文件

    /PGD

    為按配置文件優化指定 .pgd 文件。

    /PROFILE

    生成一個可與“性能工具”探查器結合使用的輸出文件。

    /RELEASE

    在 .exe 文件頭中設置校驗和

    /SAFESEH

    指定圖像將包含安全異常處理程序表。

    /SECTION

    重寫節的屬性

    /STACK

    設置堆棧的大小(以字節為單位)

    /STUB

    將 MS-DOS 存根 (stub) 程序附加到 Win32 程序

    /SUBSYSTEM

    通知操作系統如何運行 .exe 文件

    /SWAPRUN

    通知操作系統在運行鏈接器輸出之前將其復制到一個交換文件

    /TLBID

    允許指定鏈接器生成的類型庫的資源 ID

    /TLBOUT

    指定 .tlb 文件和其他 MIDL 輸出文件的名稱

    /TSAWARE

    創建專為在終端服務器下運行而設計的應用程序

    /VERBOSE

    打印鏈接器進度消息

    /VERSION

    分配版本號

    /WX

    將鏈接器警告視為錯誤。

    ?

    ?

    4、參考資料

    微軟官方MSDN幫助文檔

    ?

    有關更多信息,請參見編譯器控制的 LINK 選項、?設置鏈接器選項、有關生成的常見問題.

    轉載于:https://www.cnblogs.com/songtzu/archive/2013/01/12/2857358.html

    總結

    以上是生活随笔為你收集整理的深入探究VC —— 链接器link.exe(4)【转】http://blog.csdn.net/wangningyu/article/details/4849452...的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

    主站蜘蛛池模板: 亚洲欧美精选 | 理论片午夜| 丁香婷婷在线观看 | 成人在线手机视频 | 热99在线 | 国产精品无码一区二区无人区多人 | 在线欧美激情 | 美女张开腿让人桶 | 日本欧美另类 | 亚洲m码 欧洲s码sss222 | 亚洲AV无码AV吞精久久中文版 | 九九热在线精品视频 | 国产又色又爽无遮挡免费 | 俄罗斯美女一级爱片 | a极毛片 | 精品国产污污免费网站入口 | 亚洲精品系列 | 国内自拍视频在线播放 | 超碰在97| 日本少妇喂奶漫画 | 亚洲天堂成人网 | 国产乱人视频 | 亚洲久爱 | 波多野结衣一区二区三区中文字幕 | 91av亚洲 | 欧美日韩精品电影 | 91av福利视频 | 欧美熟妇交换久久久久久分类 | 亚洲国产理论 | 亚洲女人天堂色在线7777 | 国产靠逼网站 | 欧洲成人av | 亚洲色图在线播放 | 你懂的日韩 | 亚洲爽爽网 | 成人av网站大全 | 久久六 | 色综合久久久无码中文字幕波多 | 91l九色lporny| 天天干,天天干 | 精品乱子伦一区二区 | 好吊视频一区二区 | 国产精品乱码久久久久久 | 成人三级在线播放 | 美腿丝袜av | 亚洲欧美日韩精品在线 | 夫妻啪啪呻吟x一88av | 国产麻豆久久 | 久久尤物 | 91精彩刺激对白 | 国产黑丝在线 | 水蜜桃av在线 | 国产乡下妇女三片 | 亚洲av成人精品一区二区三区 | 国产一线在线 | 亚洲人精品 | 久久久久无码国产精品一区李宗瑞 | 亚洲成色在线 | 国产理论片 | 男女互操在线观看 | 麻豆日产六区 | 天天操夜夜欢 | jzjzz成人免费视频 | 成人久色 | 2019国产精品视频 | 影院色原网站 | 日本综合久久 | 国产资源站 | 黄色网址在线免费看 | 永久免费精品 | 日本成人动漫在线观看 | 成人在线免费高清视频 | 永久视频在线观看 | 久久丫精品国产亚洲av不卡 | 中文字幕在线视频不卡 | 天天天天天天天干 | 丰满人妻一区二区三区46 | 91丝袜呻吟高潮美腿白嫩 | 国产剧情在线视频 | 欧美精品首页 | 99精品视频一区二区三区 | 综合网激情| 日韩在线导航 | 蜜臀av性久久久久蜜臀aⅴ涩爱 | 永久免费看片 | 色女人网| 超碰在线亚洲 | 成人av在线看 | 动漫美女无遮挡免费 | 日日爱网站| 日日摸日日操 | 亚洲综合图片一区 | 欧美级毛片 | 午夜av成人 | 黄瓜视频在线观看 | 琪琪午夜伦理影院7777 | www中文字幕在线观看 | 亚洲一区二区三区在线看 | 国产精品久久久久久久久久久久久久久久久久 |