1.debug和release的區別
debug 通常稱為除錯版本,它包含除錯資訊,並且不作任何優化,便於程式設計師除錯程式。release 稱為發布版本,它往往是進行了各種優化,使得程式在**大小和執行速度上都是最優的,以便使用者很好地使用。
debug 和 release 的真正秘密,在於一組編譯選項。下面列出了分別針對二者的選項(當然除此之外還有其他一些,如/fd /fo,但區別並不重要,通常他們也不會引起 release 版錯誤,在此不討論)
debug:/mdd /mld 或 /mtd 使用 debug runtime library(除錯版本的執行時刻函式庫)
release;/md /ml 或 /mt 使用發布版本的執行時刻函式庫
在工程上右鍵-》屬性-》c/c++-》**生成-》執行庫;
多執行緒除錯dll (/mdd) 對應的是md_dynamicdebug
多執行緒dll (/md) 對應的是md_dynamicrelease
多執行緒(/mt) 對應的是md_staticrelease
多執行緒(/mtd)對應的是md_staticdebug
注意:不能將debug和release版的dll(動態鏈結庫)混合在一起使用。debug都是debug版,release版都是release版。 解決辦法是將debug和release的程式分別放在主程式的debug和release目錄下
2.何為動態鏈結庫dll(dynamic-link library,縮寫為dll)
dll只是一組源**的模組,每個模組包含一些可**用程式或者其他dll呼叫的函式,在應用程式呼叫乙個dll裡面的函式的時候,作業系統會將dll的檔案映像對映到程序的位址空間中,這樣程序中所有的執行緒就可以呼叫dll中的函式了
dll載入完成後,這個時候dll對於程序中的執行緒來說只是一些被放在位址程序空間附加的**和資料,作業系統為了節省記憶體空間,同乙個dll在記憶體中只有乙個,也就是說如果你的的兩個應用程式都需要載入user32.dll,那麼作業系統也只會載入一次user32.dll到記憶體中
ps:有main函式的**可以編譯成二進位制,其他的則編譯成庫檔案。鏈結時,把庫檔案鏈到二進位製上,就可以執行
kali2020 永久性網路配置
檢視ip ip address ip a kali2020 不支援ifconfig檢視ip 配置檔案位置 etc network inte ces 先備份檔案sudo cp etc network inte ces etc network inte ces.bak 這裡需要管理員許可權才能執行,所以...
hive的永久性udf函式
1 在開發工具中編輯實現函式的 完成之後編譯打包成jar包,上傳到主機 的 opt目錄下 2 在 上傳本地檔案medudf 0.0.1.jar到hdfs目錄 hivejar下 hadoop fs put opt medudf 0.0.1.jar hivejar 3 在hive命令列下執行語句,建立h...
apache下實現301永久性重定向
redirect 和 redirectmatch命令 redirect status url path url redirectmatch status regex url status引數可以使用以下http狀態碼 permanent 返回乙個永久性重定向狀態碼 301 表示此資源的位置變動是永久...