最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

CMake中find_package使用進(jìn)階總結(jié)

 更新時間:2026年07月02日 09:06:19   作者:流星雨愛編程  
本文總結(jié)了CMake配置庫目錄的多種方法,文章詳細(xì)說明了find_package的查找順序,列舉了查找成功后自動設(shè)置的變量,并以Boost為例演示了完整配置流程,感興趣的可以了解一下

1.cmake設(shè)置庫目錄的方法

1.1.設(shè)置庫根目錄(XXX_ROOT,最常用)

現(xiàn)代庫(Qt、Boost、MySQL)都會自帶 XXXConfig.cmake 或 xxx-config.cmake(配置文件),直接指定庫的安裝根目錄,后續(xù) find_package 會自動在根目錄下搜索 lib/cmake、include 等子目錄,適配絕大多數(shù)現(xiàn)代庫(Qt、Boost、MySQL 等)。CMake 會自動在以下子目錄中搜索配置文件: 庫根目錄/lib/cmake → 庫根目錄/cmake → 庫根目錄/share/cmake

  • 語法:set(<庫名>_ROOT "庫的根目錄")(庫名大寫,如 Qt6_ROOT、BOOST_ROOT)
  • 示例(Windows 下 Boost):
# 絕對路徑(推薦,避免歧義)
set(BOOST_ROOT "D:/boost_1_83_0")
# 跨平臺相對路徑(適合項目內(nèi)嵌庫,如 libs/boost 放在項目根目錄)
set(BOOST_ROOT ${CMAKE_CURRENT_LIST_DIR}/libs/boost)
  • 示例(Linux 下 MySQL):
set(MySQL_ROOT "/usr/local/mysql-8.0.36")  # 自定義安裝目錄
# 系統(tǒng)默認(rèn)目錄可省略,find_package 會自動搜索,但指定后更高效
  • 適用場景:單個庫配置、現(xiàn)代庫(帶 XXXConfig.cmake)、跨平臺項目。

1.2.指定庫配置文件目錄(XXX_DIR,最精準(zhǔn))

直接指向庫的 XXXConfig.cmake 或 xxx-config.cmake 所在目錄,跳過自動搜索,確保 find_package 精準(zhǔn)定位,適合路徑復(fù)雜的庫。

  • 語法:set(<庫名>_DIR "庫的 cmake 配置目錄")
  • 示例(Qt6):
# Windows:Qt 配置文件在 lib/cmake/Qt6 下
set(Qt6_DIR "D:/Qt6.5.1/6.5.1/msvc2019_64/lib/cmake/Qt6")
# Linux:Qt 配置文件在 lib/cmake/Qt6 下
set(Qt6_DIR "/opt/Qt6.5.1/6.5.1/gcc_64/lib/cmake/Qt6")
  • 示例(MySQL):
set(MySQL_DIR "D:/mysql-8.0.36-winx64/lib/cmake/MySQL")
  • 適用場景:庫路徑特殊、需精準(zhǔn)控制查找結(jié)果、避免多個庫版本沖突。

1.3.添加全局查找路徑(CMAKE_PREFIX_PATH,多庫通用)

將多個庫的根目錄添加到 CMake 全局查找路徑,后續(xù)所有 find_package 都會自動在這些目錄中搜索,適合項目依賴多個庫的場景。

  • 語法:set(CMAKE_PREFIX_PATH ${CMAKE_PREFIX_PATH} "庫根目錄1" "庫根目錄2")
  • 示例(同時配置 Boost、Qt6、MySQL):
# 跨平臺寫法(Windows/Linux 通用,路徑用斜杠 / 或雙反斜杠 \\)
set(CMAKE_PREFIX_PATH 
  ${CMAKE_PREFIX_PATH}
  "D:/boost_1_83_0"
  "D:/Qt6.5.1/6.5.1/msvc2019_64"
  "D:/mysql-8.0.36-winx64"
  "/usr/local/mysql"  # Linux 目錄可并行添加
)
  • 適用場景:多庫依賴、不想單獨設(shè)置每個庫的 ROOT 變量。

1.4.設(shè)置模塊查找路徑(CMAKE_MODULE_PATH,老庫兜底)

針對無 XXXConfig.cmake 的老庫(僅提供 FindXXX.cmake 模塊文件),指定模塊文件所在目錄,讓 CMake 能找到模塊并通過模塊定位庫目錄。

  • 語法:set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "FindXXX.cmake 所在目錄")
  • 示例(老庫 OldLib,無配置文件):
# 1. 指定模塊文件目錄(如項目根目錄下的 cmake/modules 文件夾)
set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} ${CMAKE_CURRENT_LIST_DIR}/cmake/modules)
# 2. 設(shè)置老庫根目錄(模塊文件 FindOldLib.cmake 會讀取該變量)
set(OldLib_ROOT "D:/OldLib-1.0")
# 3. 查找?guī)欤K會根據(jù) OldLib_ROOT 定位頭文件和庫文件)
find_package(OldLib REQUIRED)
  • 適用場景:老版本開源庫、無配置文件的自定義庫。

1.5.直接設(shè)置頭文件 / 庫文件目錄(INCLUDE_DIRECTORIES/LINK_DIRECTORIES,不推薦現(xiàn)代 CMake)

直接指定庫的頭文件目錄和庫文件目錄,跳過 find_package,直接用于編譯鏈接?,F(xiàn)代 CMake 不推薦(缺乏版本檢查和依賴管理),但適合簡單場景或無模塊 / 配置文件的庫。

# 設(shè)置頭文件目錄(對應(yīng)庫的 include 文件夾)
include_directories("庫目錄/include")
# 設(shè)置庫文件目錄(對應(yīng)庫的 lib 或 lib64 文件夾)
link_directories("庫目錄/lib")

示例:

include_directories("D:/boost_1_83_0/include")
link_directories("D:/boost_1_83_0/lib64-msvc-14.3")  # 區(qū)分編譯器和架構(gòu)
# 后續(xù)直接鏈接庫名
add_executable(my_app main.cpp)
target_link_libraries(my_app PRIVATE boost_system boost_asio)
  • 適用場景:簡單項目、無模塊 / 配置文件的庫、快速驗證原型。

1.6.find_package自帶的HINTS和PATHS

CMake指令:find_package

2.已設(shè)置庫目錄后,讓 find_package 找到的方法

假設(shè)你已通過 set(XXX_ROOT "庫根目錄") 或 set(庫目錄相關(guān)變量) 指定路徑,CMake 會按以下優(yōu)先級查找:

  1. 直接指定配置文件路徑:set(XXX_DIR "庫目錄/cmake")(XXXConfig.cmake 所在目錄,最精準(zhǔn));
  2. 設(shè)置根目錄:set(XXX_ROOT "庫根目錄")(CMake 會自動在 庫根目錄/lib/cmake、庫根目錄/cmake 等子目錄中找配置文件);
  3. 添加到全局查找路徑:set(CMAKE_PREFIX_PATH ${CMAKE_PREFIX_PATH} "庫根目錄")(全局生效,適合多個庫);
  4. 模塊模式兜底:若庫無配置文件,需確保 FindXXX.cmake 模塊能通過 CMAKE_MODULE_PATH 找到,且模塊中會讀取你設(shè)置的 XXX_ROOT 變量定位庫目錄。

 總結(jié)查找順序:

XXX_DIR → XXX_ROOT/lib/cmake → CMAKE_PREFIX_PATH 中的目錄 → 系統(tǒng)默認(rèn)路徑(/usr/lib/cmake 等)

3.找到庫后,CMake 自動設(shè)置的變量(核心 + 擴(kuò)展)

3.1.通用核心變量(所有庫統(tǒng)一,必用)

變量名作用
<XXX>_FOUND布爾值,TRUE= 找到庫(用于 if(XXX_FOUND) 條件判斷,避免編譯報錯)
<XXX>_INCLUDE_DIRS頭文件目錄列表(直接傳給 target_include_directories)
<XXX>_LIBRARIES需鏈接的庫文件列表(自動區(qū)分 Debug/Release,傳給 target_link_libraries)
<XXX>_VERSION_STRING庫版本(如 6.5.1),細(xì)分 _MAJOR/_MINOR/_PATCH(如 Qt6_VERSION_MAJOR=6)
<XXX>_COMPILE_DEFINITIONS庫要求的編譯宏(如 QT_NO_KEYWORDS),傳給 target_compile_definitions
<XXX>_COMPILE_OPTIONS庫要求的編譯選項(如 -std=c++17),傳給 target_compile_options

3.2.分配置變量(Debug/Release 分離時)

若庫提供不同編譯模式的版本,會生成以下變量,支持手動指定:

庫提供不同編譯模式的版本,會生成以下變量,支持手動指定:

變量名作用
<XXX>_LIBRARIES_DEBUGDebug 版庫文件(如 Qt6Widgetsd.lib、boost_system-d.lib)
<XXX>_LIBRARIES_RELEASERelease 版庫文件(如 Qt6Widgets.lib、boost_system.lib)
<XXX>_INCLUDE_DIRS_DEBUG/RELEASE分模式頭文件目錄(極少用,通常與通用目錄一致)

3.3.庫特定變量(常用庫示例,補(bǔ)充通用變量未覆蓋的功能)

  • Qt:Qt6::<Module>(目標(biāo)名,如 Qt6::Widgets,推薦直接鏈接目標(biāo)而非變量)、Qt6_QMAKE_EXECUTABLE(qmake 路徑);
  • Boost:Boost_<COMPONENT>_LIBRARY(單個組件庫,如 Boost_ASIO_LIBRARY)、Boost_INCLUDE_DIR(單數(shù),與 _INCLUDE_DIRS 等價);
  • MySQL:MySQL_INCLUDE_DIR(單數(shù)頭文件目錄)、MySQL_LIBRARY(核心庫文件)、MySQL_CLIENT_LIBS(客戶端完整依賴庫)。

4.實操示例

(以 Boost 為例,已設(shè)置庫目錄)

假設(shè)已設(shè)置 Boost 目錄 set(BOOST_ROOT "D:/boost_1_83_0"),完整流程:

# 1. 引導(dǎo) find_package 找到 Boost(已設(shè)置 BOOST_ROOT,無需額外路徑)
find_package(Boost REQUIRED COMPONENTS asio system)  # 要求 asio、system 組件

# 2. 驗證查找結(jié)果(可選,調(diào)試用)
if(Boost_FOUND)
  message("Boost 找到:版本=${Boost_VERSION_STRING}")
  message("頭文件目錄:${Boost_INCLUDE_DIRS}")
  message("鏈接庫:${Boost_LIBRARIES}")
else()
  message(FATAL_ERROR "Boost 未找到,請檢查 BOOST_ROOT 路徑")
endif()

# 3. 應(yīng)用變量到項目
add_executable(my_app main.cpp)
target_include_directories(my_app PRIVATE ${Boost_INCLUDE_DIRS})
target_link_libraries(my_app PRIVATE ${Boost_LIBRARIES})  # 自動鏈接對應(yīng)模式庫
target_compile_features(my_app PRIVATE cxx_std_17)  # 滿足 Boost.Asio 編譯要求

5.用Everything在系統(tǒng)中很多地方搜索到庫,但是find_package卻找不到

當(dāng)手動能找到系統(tǒng)中的庫,但 find_package 查找失敗時,核心原因是 CMake 沒找到「符合要求的配置文件 / 模塊文件」(而非沒找到庫文件本身)。

5.1.先做核心排查:開啟 CMake 調(diào)試日志

CMake實踐:常見的調(diào)試技巧

首先通過日志明確 CMake 實際查找了哪些文件、為什么排除,在 find_package 前添加:

set(CMAKE_FIND_DEBUG_MODE ON)  # 開啟調(diào)試,打印所有查找細(xì)節(jié)
find_package(Qt6 REQUIRED COMPONENTS Widgets)  # 替換為你的庫

編譯時重點關(guān)注 3 類信息:

  • Looking for XXXConfig.cmake/Looking for FindXXX.cmake:CMake 真正需要的文件(不是 .lib/.so 庫文件);
  • Found XXX in /xxx/xxx:CMake 實際找到的文件路徑;
  • Skipping /xxx/xxx because ...:排除該路徑的原因(版本不匹配、架構(gòu)不兼容、組件缺失等)。

5.2.原因分析以及解決方案

1.手動找到的是「庫文件」,但 CMake 缺「配置 / 模塊文件」(最常見)

原因:你手動找到的是 .lib/.so/.dll 庫文件,但 find_package 依賴「配置文件(XXXConfig.cmake)」或「模塊文件(FindXXX.cmake)」,庫文件所在目錄沒有這兩類文件,導(dǎo)致查找失敗。

  • 例:手動找到 D:/Qt6.5.1/lib/Qt6Widgets.lib,但 find_package(Qt6) 需要 Qt6Config.cmake(通常在 lib/cmake/Qt6 目錄),若沒找到該配置文件,即使庫文件存在也會失敗。

解決方案:

  • 找到庫對應(yīng)的「配置文件目錄」,用 XXX_DIR 直接指定(優(yōu)先級最高):
# Qt 示例:找到 Qt6Config.cmake 所在目錄(通常在 lib/cmake/Qt6)
set(Qt6_DIR "D:/Qt6.5.1/6.5.1/msvc2019_64/lib/cmake/Qt6")
find_package(Qt6 CONFIG REQUIRED COMPONENTS Widgets)

# Boost 示例:找到 BoostConfig.cmake 所在目錄(vcpkg 安裝的在 share/boost)
set(Boost_DIR "D:/vcpkg/installed/x64-windows/share/boost")
find_package(Boost REQUIRED COMPONENTS asio)

若庫無配置文件(老庫):需找到 FindXXX.cmake 模塊文件,用 CMAKE_MODULE_PATH 指定模塊目錄:

# 假設(shè) FindOldLib.cmake 在項目的 cmake/modules 目錄
set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} ${CMAKE_CURRENT_LIST_DIR}/cmake/modules)
find_package(OldLib REQUIRED)  # 此時 CMake 會用 FindOldLib.cmake 查找?guī)煳募?/pre>

2.路徑優(yōu)先級問題:CMake 優(yōu)先找到了「錯誤的舊版本 / 不兼容版本」

原因:系統(tǒng)中存在多個版本的庫(如系統(tǒng)自帶的 Boost 1.71 + 你手動安裝的 1.83),CMake 按默認(rèn)優(yōu)先級找到了舊版本的配置文件,導(dǎo)致新版本的庫目錄被忽略,即使你手動找到了新版本。

解決方案:

用 XXX_DIR 強(qiáng)制指定「正確版本的配置文件目錄」(覆蓋默認(rèn)優(yōu)先級):

# 優(yōu)先使用手動安裝的 Boost 1.83,而非系統(tǒng)默認(rèn)版本
set(Boost_DIR "D:/boost_1_83_0/lib/cmake/Boost-1.83.0")
find_package(Boost 1.83 REQUIRED COMPONENTS asio)

調(diào)整 CMAKE_PREFIX_PATH,將正確路徑放在最前面:

# 正確路徑在前,覆蓋系統(tǒng)默認(rèn)路徑
set(CMAKE_PREFIX_PATH 
  "D:/vcpkg/installed/x64-windows"  # 優(yōu)先 vcpkg 安裝的庫
  "/usr/local/boost"                # 其次手動安裝的庫
  ${CMAKE_PREFIX_PATH}              # 最后系統(tǒng)默認(rèn)路徑
)
find_package(Boost REQUIRED COMPONENTS asio)

3.架構(gòu) / 編譯器不兼容:庫版本與項目配置不匹配

原因:你手動找到的庫與項目的「架構(gòu)(32/64 位)」或「編譯器(MSVC/GCC/Clang)」不匹配,CMake 識別后自動排除,即使路徑正確。

  • 例:項目是 64 位(CMAKE_SIZEOF_VOID_P=8),但找到的庫是 32 位;或項目用 MSVC 2019,庫是 GCC 編譯的。

解決方案:

  • 統(tǒng)一架構(gòu):確保庫的架構(gòu)與項目一致(vcpkg 安裝時指定 x64-windows/x86-windows,手動編譯時指定 -A x64);
  • 驗證編譯器匹配:調(diào)試日志中會顯示庫的編譯器信息(如 MSVC 14.3/GCC 11.2),與項目的 CMAKE_CXX_COMPILER 對比;
  • 手動指定兼容路徑:僅保留匹配的庫路徑:
# 僅添加 64 位 MSVC 版本的 Qt 路徑
set(Qt6_DIR "D:/Qt6.5.1/6.5.1/msvc2019_64/lib/cmake/Qt6")
find_package(Qt6 CONFIG REQUIRED COMPONENTS Widgets)

4.版本不匹配:庫版本不符合 find_package 的版本要求

原因:你在 find_package 中指定了版本(如 find_package(Boost 1.83 REQUIRED)),但找到的庫版本低于 / 高于要求,CMake 自動排除。

解決方案:

  • 移除版本限制(若兼容):
find_package(Boost REQUIRED COMPONENTS asio)  # 不指定版本,兼容找到的版本
  • 明確匹配版本:在 find_package 中指定實際找到的版本,或升級 / 降級庫(vcpkg 用 vcpkg install boost:x64-windows --version 1.83);
  • 查看版本日志:調(diào)試日志中會顯示 Found Boost version: 1.78.0 和 Required version: 1.83,對比是否一致。

5.組件缺失:指定的組件在找到的庫中不存在

原因:find_package 指定了組件(如 find_package(Qt6 REQUIRED COMPONENTS Widgets Network)),但找到的庫目錄中沒有該組件的配置(如僅含 Core 組件,不含 Widgets)。

解決方案:

  • 檢查組件名稱(區(qū)分大小寫!):Qt 的 Widgets 不能寫 widgets,Boost 的 asio 不能寫 Asio;
  • 安裝缺失的組件:vcpkg 安裝時指定組件(如 vcpkg install qt6[widgets,network]:x64-windows);
  • 移除不必要的組件:若實際不需要某組件,從 find_package 中刪除。

6.查找模式?jīng)_突:配置模式 vs 模塊模式

原因:你想讓 CMake 用「配置模式」(找 XXXConfig.cmake),但系統(tǒng)中只有「模塊模式」文件(FindXXX.cmake),且模塊文件有缺陷;或反之,導(dǎo)致找到的文件不符合模式要求。

解決方案:

  • 強(qiáng)制指定查找模式(現(xiàn)代庫優(yōu)先用 CONFIG 模式):
# 強(qiáng)制使用配置模式(忽略系統(tǒng)中的 FindQt6.cmake)
find_package(Qt6 CONFIG REQUIRED COMPONENTS Widgets)
# 老庫強(qiáng)制使用模塊模式(僅當(dāng)無配置文件時)
# find_package(OldLib MODULE REQUIRED)
  • 刪除沖突文件:若系統(tǒng)中的 FindXXX.cmake 是舊版本 / 不兼容版本,臨時重命名(如 FindXXX.cmake.bak),避免 CMake 誤選。

7.CMake 緩存殘留:之前的錯誤路徑被緩存

原因:之前 CMake 緩存了錯誤的路徑(如舊版本庫的 XXX_DIR),即使后來設(shè)置了正確路徑,緩存未清除,導(dǎo)致查找失敗。

解決方案:

  • 清除緩存:刪除 build 目錄(最徹底),或在 CMake GUI 中點擊「File → Delete Cache」;
  • 強(qiáng)制覆蓋緩存變量:在 find_package 前添加 FORCE 選項(僅適用于 CMake 3.19+):

8.庫文件權(quán)限問題(Linux/macOS 特有)

原因:Linux/macOS 下,手動找到的庫文件 / 配置文件權(quán)限不足(如僅 root 可訪問),CMake 無權(quán)限讀取,導(dǎo)致提示找不到。

解決方案:

  • 檢查權(quán)限:用 ls -l /path/to/library 查看文件權(quán)限,確保當(dāng)前用戶有讀取權(quán)限;
  • 調(diào)整權(quán)限:用 chmod +r /path/to/library 賦予讀取權(quán)限,或切換到 root 用戶編譯。

6.總結(jié)

1.路徑規(guī)范

  • 跨平臺優(yōu)先用斜杠 / 或雙反斜杠 \\(避免單反斜杠轉(zhuǎn)義問題);
  • 相對路徑優(yōu)先用 CMAKE_CURRENT_LIST_DIR(當(dāng)前 CMakeLists.txt 所在目錄)拼接,避免硬編碼絕對路徑。

2.現(xiàn)代 CMake 推薦:優(yōu)先使用方法一(XXX_ROOT)、方法二(XXX_DIR)、方法三(CMAKE_PREFIX_PATH),配合 find_package + 目標(biāo)鏈接(target_link_libraries),自動處理依賴和分配置(Debug/Release)。

3.64/32 位適配:庫目錄需匹配編譯架構(gòu)(如 lib64 對應(yīng) 64 位,lib 對應(yīng) 32 位),可通過 CMAKE_SIZEOF_VOID_P 判斷(8 為 64 位,4 為 32 位)。

到此這篇關(guān)于CMake中find_package使用總結(jié)的文章就介紹到這了,更多相關(guān)CMake find_package使用內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 如何用C語言畫一個“圣誕樹”

    如何用C語言畫一個“圣誕樹”

    這篇文章主要介紹了如何用C語言畫一個“圣誕樹”,感興趣的小伙伴們可以參考一下
    2015-12-12
  • C++整數(shù)拼接技巧大揭秘

    C++整數(shù)拼接技巧大揭秘

    C++整數(shù)拼接技巧大揭秘,讓你的代碼更簡潔高效!你是否還在為如何優(yōu)雅地將整數(shù)拼接成字符串而煩惱?本指南將為你揭示C++中最實用、最酷炫的整數(shù)拼接技巧,助你提升編程技能,需要的朋友可以參考下
    2024-03-03
  • C++項目開發(fā)實現(xiàn)圖書管理系統(tǒng)

    C++項目開發(fā)實現(xiàn)圖書管理系統(tǒng)

    這篇文章主要為大家詳細(xì)介紹了C++項目開發(fā)實現(xiàn)圖書管理系統(tǒng),文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-03-03
  • C語言實現(xiàn)簡單的掃雷功能

    C語言實現(xiàn)簡單的掃雷功能

    這篇文章主要為大家詳細(xì)介紹了C語言實現(xiàn)簡單的掃雷功能,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-11-11
  • C++實現(xiàn)LeetCode(642.設(shè)計搜索自動補(bǔ)全系統(tǒng))

    C++實現(xiàn)LeetCode(642.設(shè)計搜索自動補(bǔ)全系統(tǒng))

    這篇文章主要介紹了C++實現(xiàn)LeetCode(642.設(shè)計搜索自動補(bǔ)全系統(tǒng)),本篇文章通過簡要的案例,講解了該項技術(shù)的了解與使用,以下就是詳細(xì)內(nèi)容,需要的朋友可以參考下
    2021-08-08
  • C++開發(fā)的Redis數(shù)據(jù)導(dǎo)入工具優(yōu)化

    C++開發(fā)的Redis數(shù)據(jù)導(dǎo)入工具優(yōu)化

    這篇文章主要介紹了C++開發(fā)的Redis數(shù)據(jù)導(dǎo)入工具優(yōu)化方法的相關(guān)資料,需要的朋友可以參考下
    2015-07-07
  • C語言 指針與數(shù)組的詳解及區(qū)別

    C語言 指針與數(shù)組的詳解及區(qū)別

    這篇文章主要介紹了C語言 指針與數(shù)組的詳解及對比的相關(guān)資料,需要的朋友可以參考下
    2017-03-03
  • 老生常談C++ explicit關(guān)鍵字

    老生常談C++ explicit關(guān)鍵字

    這篇文章主要介紹了C++ explicit關(guān)鍵字,explicit關(guān)鍵字只需用于類內(nèi)的單參數(shù)構(gòu)造函數(shù)前面,由于無參數(shù)的構(gòu)造函數(shù)和多參數(shù)的構(gòu)造函數(shù)總是顯式調(diào)用,這種情況在構(gòu)造函數(shù)前加explicit無意義,需要的朋友可以參考下
    2023-03-03
  • C++中圖片類型的識別與轉(zhuǎn)換詳解方法

    C++中圖片類型的識別與轉(zhuǎn)換詳解方法

    本文簡單的介紹一下C++語言中如何識別圖片文件的類型,以及各圖片類型之間的轉(zhuǎn)換方法,并提供相關(guān)的源碼供大家參考,感興趣的朋友快來看看吧
    2021-11-11
  • C語言文件操作與相關(guān)函數(shù)介紹

    C語言文件操作與相關(guān)函數(shù)介紹

    文件(file)一般指存儲在外部介質(zhì)上數(shù)據(jù)的集合,比如我們經(jīng)常使用的.txt, .bmp, jpg. .exe,.rmvb等等,下面這篇文章主要給大家介紹了關(guān)于C語言文件操作的相關(guān)資料,文中通過實例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2022-09-09

最新評論

喀喇沁旗| 确山县| 渝中区| 新建县| 文山县| 华阴市| 宣威市| 洮南市| 平江县| 漳浦县| 永济市| 新余市| 贵州省| 民县| 城口县| 京山县| 米易县| 五莲县| 阳新县| 定襄县| 镇康县| 南康市| 滨州市| 泾川县| 许昌市| 潢川县| 衢州市| 朔州市| 周口市| 商南县| 曲阜市| 昌图县| 松潘县| 怀宁县| 革吉县| 河南省| 当雄县| 承德市| 麻城市| 正安县| 屯门区|