M$提供的c/c++第三方庫集成工具:vcpkg
安裝vcpkg很簡單,直接從M$的git倉庫:https://github.com/Microsoft/vcpkg.git 拉一下代碼,然后編譯就行了。
> git clone https://github.com/Microsoft/vcpkg.git
> cd vcpkg
PS> .\bootstrap-vcpkg.bat //如果是windows系統(tǒng),運(yùn)行這個
Linux:~/$ ./bootstrap-vcpkg.sh //linux運(yùn)行這個。
編譯安裝好后,進(jìn)行全局安裝,安裝后,以后所有的通過vcpkg install的第三方庫,都是全局的。所有vc ide 實例共享
PS> .\vcpkg integrate install
Linux:~/$ ./vcpkg integrate install
C:\Devtools\project\git\vcpkg>vcpkg integrate install
Applied user-wide integration for this vcpkg root.
All MSBuild C++ projects can now #include any installed libraries.
Linking will be handled automatically.
Installing new libraries will make them instantly available.
CMake projects should use: "-DCMAKE_TOOLCHAIN_FILE=C:/Devtools/project/git/vcpkg/scripts/buildsystems/vcpkg.cmake"
然后,如果想安裝三方庫,直接使用:
PS> .\vcpkg install ffmpeg
然后vcpkg就自動配置,下載,編譯庫文件。等他編譯完畢后,都設(shè)置到了全局的vs ide中,你要做的就是直接#include 庫的頭文件就行了。再也不需要神馬庫依賴神馬的麻煩事了。
#ifdef __cplusplus
extern "C" {
#endif
#include <libavcodec/avcodec.h>
#include <libavformat/avformat.h>
#include <libavformat/avio.h>
#include <libavutil/file.h>
#ifdef __cplusplus
}
#endif
遙想不久之前要使用ffmpeg,自己下載代碼,編譯,配置,解決代碼依賴。搞好幾天都搞不完啊?,F(xiàn)在vcpkg一鍵搞定。
PS>.\vcpkg list //這個命令可以列出已經(jīng)安裝的三方庫。
.\vcpkg.exe search //這個命令可以列出vcpkg支持哪些三方庫。
普普通通用用,這些就夠了。
指定編譯某種架構(gòu)的程序庫
如果不指定安裝的架構(gòu),vcpkg默認(rèn)把開源庫編譯成x86的Windows版本的庫。那vcpkg總共支持多少種架構(gòu)呢?我們可以使用如下命令便知:
.\vcpkg.exe help triplet
我們可以看到會列出如下清單:
arm-uwp
arm-windows
arm64-uwp
arm64-windows
x64-uwp
x64-windows-static
x64-windows
x86-uwp
x86-windows-static
x86-windows
這個清單以后隨著版本的迭代還會再增加。vcpkg不僅支持x86架構(gòu),還支持arm架構(gòu)。注意:這里的arm架構(gòu)特指類似于surface這種運(yùn)行在arm處理器上的Win10平臺,而并非我們傳統(tǒng)意義上的Linux或android的ARM平臺。
那如果要安裝編譯某一個架構(gòu)的開源庫,我們該怎么寫呢?我們只需要在需要安裝的包后面指定相應(yīng)的triplet即可。例如我們需要編譯64位版本的jsoncpp,那么執(zhí)行如下命令即可。
vcpkg install ffmpeg[gpl]:x86-windows-static