我試圖編譯這段代碼,它在Windows上工作得很好,在Linux(代碼::塊):無效的使用不完全類型「DIR」
/* Edit: Includes */
#include <sys/types.h>
#include <sys/stat.h>
#include <dirent.h>
#include <...>
/**/
/* === */
/* Function code */
DIR *dp;
dirent *ep;
string name_parent;
dp = opendir(somepath);
name_parent = dp->dd_name; //error
/**/
由於在Windows路徑名不區分我可以讀取像「c://程序文件」這樣的用戶輸入並獲取「正確」路徑「C:\ Program Files *」(除了星號 - 或「F://」 - >「F: *「)。我也使用這個變量來獲取絕對路徑值的目錄列表,因爲ep-> d_name(當然有一些readdir())返回相對於某個路徑的路徑。
在Linux上,我得到一個編譯錯誤( 「DP-> dd_name」):
error: invalid use of incomplete type 'DIR'
我是不是忘了什麼東西? 還是有邏輯錯誤?
編輯:我已經在上面添加了包含(我已經在使用)。
或者使用boost ::文件系統的名稱存在。 –
對不起 - 忘了提及它們(見編輯)。我已經在使用這些標題。它在Windows上工作。我想我很幸運Code :: Blocks呢? – basic6