2016-03-14 84 views
-1

我已經完成了一個以C++編寫的簡單控制檯應用程序。它使用OpenCV(最新版本)來檢測給定圖像中的臉部。現在我想在Ubuntu中編譯這個應用程序。我已經看過幾個頁面來做這件事(使用cmake,g ++ ...),但我不知道編譯整個項目的情況(不是簡單的.cpp)。我想知道如何做到這一點。有沒有教程呢?如何在Ubuntu中編譯C++控制檯應用程序

謝謝!

回答

0

你不告訴任何有關你的應用程序。它的大小是多少(萬條源代碼行)?多少個文件?它是免費軟件嗎?憑什麼牌照?代碼在哪裏?

你或許應該寫一個Makefile(如果你沒有一個)或一些其他的方式來構建它(你可以用,但我不推薦的小項目,一個Makefile發電機例如像cmakeautomake。 ..);請參閱this

而且您應該有一個README文件記錄您的應用程序以及如何構建它。

看起來(至少對於靈感......)到一些類似於你的現有免費軟件的源代碼。

另外,不要忘了所有警告編譯&調試信息(如果使用GCCg++ -Wall -Wextra -g,或許也是-std=c++11如果你在編寫C++ 11)

+0

嗨,我有一個項目有10個類(.cpp和.h)。我正在使用3.1.0版本的OpenCV。我試圖做一個生成文件,但我運行該文件時遇到問題。我有一個lib「targetver.h」的問題: –

+0

你應該編輯你的問題來告訴它(並且可能在你的問題中顯示你的'Makefile'),並給出你運行'make'時得到的確切錯誤信息。 –

1

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如EclipseCodeBlocks也可以在某種程度上簡化事情。

進一步擴展您的問題可以更好地理解您的要求。

相關問題