我正在使用cmake構建Code Composer Studio項目,這對我來說是新手。它在Linux下成功構建,但我努力使它在Windows下工作。該cmake
命令執行沒有問題,但在第一個#include
的第一個C對象,錯誤代碼CMake:頭文件無法打開
fatal error: could not open source file "stdbool.h" (no directories in search list)
我使用的庫包含在CCS的編譯器(c6000_7.4.15)期間make
失敗,並且整個文件夾包含在CSS項目中。我也把它包含在cmake中。在我.cmake文件:
set (CCS_ROOT ${CCS_ROOT_V6_WIN} CACHE PATH "code composer install directory")
set(CGT_COMPILER_ROOT ${CCS_ROOT}/tools/compiler/c6000_7.4.15 CACHE INTERNAL "DSP Compiler Root")`
而且在文件的CMakeLists.txt:
set (COMPILER_INCLUDE ${CGT_COMPILER_ROOT}/include)
INCLUDE_DIRECTORIES ("${COMPILER_INCLUDE}")
爲什麼頭文件不被當他們在項目中是有聯繫和CMake的可以直接找到他們打開精細?
編輯:我下面的目錄結構已經改變了,所以我藉此機會將所有外部文件直接添加到項目中,使其完全獨立於平臺。這樣,由於該項目由我們的Git存儲庫管理,用戶不必安裝CSL或任何其他程序來構建項目。這也意味着庫和頭文件的路徑在修訂版和環境之間永遠不會改變。
不幸的是,這並沒有解決我的問題。該項目繼續在Linux中構建,但未能找到第一個包含的頭文件。我還注意到,在Windows下,除非我提供相對路徑,否則它不能找到我自己的頭文件。 #include "../Common.h"
我可以得到make
找到stdbool.h
如果我提供了一個編譯器目錄的絕對路徑,但暴露了文件之間的網絡其他斷開的鏈接。
請注意,該項目在Code Composer Studio中成功構建,因此我認爲這不是我的特定Windows環境的問題,也不是項目本身的代碼。
所以這些文件真的存在於那個位置?如果你做了一個'if(EXISTS $ {COMPILER_INCLUDE} /stdbool.h)消息(Found)endif()'(3行),是否打印? – Angew
@Angew是的,他們這樣做。我手動確認了文件的位置,你的代碼顯示cmake可以找到它們。 – randman2011