2014-02-28 15 views
2

請問您可以告訴我以下代碼有什麼問題嗎? 由於某種原因,編譯器拒絕識別O_DIRECT標誌。無法解析符號O_DIRECT

#define _GNU_SOURCE 
#include <sys/types.h> 
#include <sys/stat.h> 
#include <fcntl.h> 
#include <stdlib.h> 
#include <stdio.h> 

int main(int argc, char **argv) { 
    int fd; 
    fd = open(argv[1], O_RDONLY | O_DIRECT); 
    return 0; 
} 
+2

請發佈您用於編譯文件的確切命令以及完整的輸出。 – kay

+0

我正在使用Eclipse,奇怪的是,代碼編譯並運行,但是我從編譯器得到以下警告:Symbol O_DIRECT無法解析 – Robert777

+1

@ Robert777那麼不用擔心。這只是索引解析器。您可以通過從編譯器中轉儲預定義的宏並將它們提供給索引配置控制面板來解決它。再次檢查它是否有正確的標題搜索路徑。或者只是忽略/禁用這些警告。 – Potatoswatter

回答

1

別擔心。它只是決定文本編輯器語法高亮的索引解析器,並且(理想情況下)將標識符鏈接到定義。

您可以通過從編譯器中轉儲預定義的宏並將它們提供給索引配置控制面板來解決該問題。再次檢查它是否有正確的標題搜索路徑。

或者只是忽略/禁用這些警告。