所以我試圖用C++創建我自己的庫,並在另一個項目中使用它。 到目前爲止,它與示例代碼一起工作,但我必須在其自己的庫中包含其他庫。所以問題是,當我將頭文件包含在我的庫中時,頭文件中的包含路徑會混亂。 一個簡單的解決方案是添加搜索目錄,但我不認爲, 多數民衆贊成在應該如何解決。嵌套的C++庫包括
示例代碼 - 庫的頭文件:
#include <GL/glew.h>
#include <GLFW/glfw3.h>
int test();
源文件:
#include "sample.h"
int test() { return 20; }
現在,我想包括樣品
#include <sample.h>
int main() { int a = test(); }
該項目的問題,include將sample.h中的代碼直接複製到main.cpp和ot的搜索目錄中她的包含from sample.h不再被定義爲
哇感謝,這正是我一直在尋找。 還有一件事:到目前爲止,當我創建一個鏈接到我的引擎庫的項目時,我還必須鏈接到所有其他庫(glew32d,opengl32等)。 有沒有解決方案,它們會自動鏈接? –
嗯,好問題。我自己也遇到了同樣的問題,並且只是鏈接到依賴關係。在像glew這樣的開放源代碼的情況下,你可以將它的源代碼包含在你的庫中,然後將它整合到一箇中(儘管這可能違反了他們的許可證,我沒有檢查過)。儘管源代碼不可用,但對於opengl32來說這是不可能的。也許看看http://stackoverflow.com/questions/5445023/c-can-you-build-one-static-library-into-another - 雖然那裏的普遍共識似乎是鏈接與依賴關係爲好。 – jtedit