簡體   English   中英

英特爾C編譯器無法在Linux上使用標准庫(例如dirent.h)

[英]Intel C Compiler unable to use standard libs (e.g. dirent.h) on Linux

我遇到了Intel C Compiler icc ,該問題拒絕識別某些標准庫,例如dirent.h。 我的代碼如下所示:

#include <dirent.h>
...
DIR* dir = opendir(path);
...
readdir(dir);
dirent* entry = readdir(dir);
while(entry != NULL) {
    ...
    entry = readdir(dir);
}

嘗試編譯代碼時,即使我將-I/usr/include顯式添加到命令中,我也會遇到以下錯誤:

icc -g -ipp=common -mkl=parallel -I/opt/intel/ipp/include -I"../include" -std=c99 -openmp -cilk-serialize -fpic -MMD -MP -MF"src/main.d" -MT"src/main.d" -c -o "src/main.o" "../src/main.c"
../src/main.c(85): error: identifier "dirent" is undefined
dirent* entry = readdir(dir);

GCC可以毫無問題地編譯相同的代碼-不幸的是,由於其他原因,我需要使用ICC編譯我的應用程序。

我感謝您的建議:)

在C語言中,必須在C塊{}的開頭聲明變量。 您不能在指令之間插入聲明。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM