我有一個項目有兩個源文件夾(main和lib)。它產生一個共享庫和一個可執行文件。這是目前建成像這樣:C++跨文件夾包含失敗
- 副本都來自這兩個文件夾的文件到一個新的臨時文件夾
- 運行lib_makefile
- 運行main_makefile
- 複製二進制文件進行
- 刪除臨時文件夾
這讓我感到奇怪的做事方式,所以我嘗試在lib_makefile(和vi中添加-I../main
來構建每個對象CE-反之亦然)。不幸的是,這似乎並不奏效。
說明性示例: foo.cpp(在lib中)包括bar.h(在main中),其中包括baz.h(在lib中)。
當我嘗試編譯共享庫時,它正確地在main /中查找bar.h,但隨後用「沒有這樣的文件或目錄」聲稱它找不到baz.h,即使baz.h在與lib_makefile相同的目錄!
所有包含格式爲#include「xxx.h」(即include語句中沒有相對路徑)。
有沒有辦法讓這個工作?我覺得我必須失去了一些東西明顯..
(注:我不能修改的#includes因爲其他人還建立這個複製的一切,跨路)
您是否嘗試過也加入像'-I ../ lib'到庫makefile的東西呢? –
它包含'this directory',但是在處理'../main'中的文件'this directory'時,並不是你運行的文件從 –