2015-12-21 102 views
2

當編譯一些代碼,我想哪個庫的版本是在編譯時編譯代碼和「保存」庫版本

用在編譯的程序「嵌入」編譯

g++ txtbin.cpp -o txtbin `pkg-config opencv --cflags --libs` 

庫版本

pkg-config --modversion opencv 

如何在程序中「嵌入」圖書館版本?用戶運行該程序每次我想輸出的opencv

回答

4

一種方法庫版本要做到這一點是使用-D編譯器選項,這相當於一個#define

g++ txtbin.cpp -o txtbin `pkg-config opencv --cflags --libs` -DOPENCV_VERSION=`pkg-config --modversion opencv` 

您可能需要將版本命令包含到""中。

然後在你的代碼只是:

std::cout << "OpenCV Version Used: " << OPENCV_VERSION << std::endl; 
+0

你可能想換行或其他一些空格字符,以及一些描述性文字。 –

+0

編譯時,是不是可以將邏輯添加到代碼中,而不是作爲額外的參數? – clarkk

+0

@clarkk:如果OpenCV提供了這樣的功能,是的。可以? (這與共享庫工作的額外好處,所以你可能會想要這樣做。) –