我已經完成了一個以C++編寫的簡單控制檯應用程序。它使用OpenCV(最新版本)來檢測給定圖像中的臉部。現在我想在Ubuntu中編譯這個應用程序。我已經看過幾個頁面來做這件事(使用cmake,g ++ ...),但我不知道編譯整個項目的情況(不是簡單的.cpp)。我想知道如何做到這一點。有沒有教程呢?如何在Ubuntu中編譯C++控制檯應用程序
謝謝!
我已經完成了一個以C++編寫的簡單控制檯應用程序。它使用OpenCV(最新版本)來檢測給定圖像中的臉部。現在我想在Ubuntu中編譯這個應用程序。我已經看過幾個頁面來做這件事(使用cmake,g ++ ...),但我不知道編譯整個項目的情況(不是簡單的.cpp)。我想知道如何做到這一點。有沒有教程呢?如何在Ubuntu中編譯C++控制檯應用程序
謝謝!
你不告訴任何有關你的應用程序。它的大小是多少(萬條源代碼行)?多少個文件?它是免費軟件嗎?憑什麼牌照?代碼在哪裏?
你或許應該寫一個Makefile
(如果你沒有一個)或一些其他的方式來構建它(你可以用,但我不推薦的小項目,一個Makefile
發電機例如像cmake
或automake
。 ..);請參閱this
而且您應該有一個README
文件記錄您的應用程序以及如何構建它。
看起來(至少對於靈感......)到一些類似於你的現有免費軟件的源代碼。
另外,不要忘了所有警告編譯&調試信息(如果使用GCC如g++ -Wall -Wextra -g
,或許也是-std=c++11
如果你在編寫C++ 11)
這link呈現沿着一個很好的例子截圖可以幫助你編譯你的基本openCV代碼。
基本上,無論選擇哪種方式編譯,您都必須提及openCV文件的路徑。
當您使用終端來編譯您將使用類似於下面的一個選項:
g++ -I/usr/local/include/opencv -I/usr/local/include/opencv2 -L/usr/local/lib/ -g -o binary main.cpp -lopencv_core -lopencv_imgproc -lopencv_highgui -lopencv_ml -lopencv_video -lopencv_features2d -lopencv_calib3d -lopencv_objdetect -lopencv_contrib -lopencv_legacy -lopencv_stitching
如果有,你打算編譯多個文件,您可以包括他們在的地方main.cpp中的在上面的命令。
之後的位置-I爲頭文件提供位置。 -o選項用於設置輸出二進制文件的名稱。您可以進一步探索g++
命令中其他選項的重要性。
您只需修改上述命令中的路徑,並將其用於您的應用程序。
如果你有一個更大的應用程序,那麼編寫makefile
或使用cmake
將是有道理的。使用IDE如Eclipse或CodeBlocks也可以在某種程度上簡化事情。
進一步擴展您的問題可以更好地理解您的要求。
嗨,我有一個項目有10個類(.cpp和.h)。我正在使用3.1.0版本的OpenCV。我試圖做一個生成文件,但我運行該文件時遇到問題。我有一個lib「targetver.h」的問題: –
你應該編輯你的問題來告訴它(並且可能在你的問題中顯示你的'Makefile'),並給出你運行'make'時得到的確切錯誤信息。 –