在C++中,是否需要將任何需要的頭文件複製到主C++文件的目錄中?在C++中包含頭文件
Ex。我在全球安裝了OpenCV,並且Python綁定運行良好。但是,如果我寫:
#include "opencv2/highgui/highgui.hpp"
我收到「未找到」錯誤。我是否需要將這些從全局安裝位置複製到項目目錄中?我確定這一定要有一套行之有效的做法,所以我不想在黑暗中獨自徘徊。
在C++中,是否需要將任何需要的頭文件複製到主C++文件的目錄中?在C++中包含頭文件
Ex。我在全球安裝了OpenCV,並且Python綁定運行良好。但是,如果我寫:
#include "opencv2/highgui/highgui.hpp"
我收到「未找到」錯誤。我是否需要將這些從全局安裝位置複製到項目目錄中?我確定這一定要有一套行之有效的做法,所以我不想在黑暗中獨自徘徊。
這取決於您正在使用哪種操作系統和構建工具鏈,但作爲使用linux,gcc和cmake的示例,本文將介紹如何使用opencv構建。
http://docs.opencv.org/trunk/doc/tutorials/introduction/linux_gcc_cmake/linux_gcc_cmake.html
你可以用find_package
指令看,cmake的是尋找OpenCV的包含文件。
顯然,您可以直接指定包含路徑g++ -I
,但讓cmake爲您找到它具有的優點是,如果您在不同的系統上編譯,它將有更好的機會被發現。如果找不到文件,它也會給你一個錯誤。
最後,你應該確保你有「開發」文件,而不僅僅是庫。開發文件將包含標題。而該庫只有共享對象(*.so
)和檔案(*.a
),可用於靜態鏈接或運行時鏈接。
教程很有幫助,現在所有功能都按需要運行。也欣賞使用標誌的建議。 –
聽起來不錯。我也認爲托馬斯巴丹的建議很好。你也可以嘗試。我也贊成他的。 – Homer6
如果全球的裝機量,你需要告訴編譯器在全球範圍內看,即
#include <opencv2/highgui/highgui.hpp>
通常你告訴編譯器到哪裏尋找包含文件。這取決於編譯器和/或IDE。 – juanchopanza
@juanchopanza ...以及在開發機器上放置lib的實際安裝位置。 –
您不應該將頭文件或甚至庫文件複製到您的項目中。然而,您可能需要調整環境變量,項目文件中的編譯器設置或IDE中的某些設置,以告知編譯器在哪裏查找。 – drescherjm