Включать файлы, не найденные даже с правильным -I / gcc + mac os - PullRequest
0 голосов
/ 25 июня 2019

gcc, очевидно, не может найти файл включения в указанном месте. Это работает, если я использую

#include "fullpath/stdint.h"

Я не могу заставить его работать, используя

#include < stdint.h >

Я попытался скомпилировать пакет, используя gcc в Mac OS. Нет успеха Я прибил проблему к включаемому файлу stdint.h.

Я написал следующий тестовый код:

// 1 #include <stdint.h>
// 2 #include "/Library/Developer/CommandLineTools/SDKs/MacOSX10.14.sdk/usr/include/stdint.h"
// 3 typedef unsigned long long uint64_t;

#include <stdio.h>
int main()
{
uint64_t x ;

x = 10 ;

printf("x = %lld\n",x);
}

Если я раскомментирую первую закомментированную строку, помеченную как «1», она не будет работать.

Я попытался скомпилировать с:

> gcc -I/Library/Developer/CommandLineTools/SDKs/MacOSX10.14.sdk/usr/include/ test.c
test.c:8:9: error: expected ';' after expression
uint64_t x ;
        ^
        ;
test.c:8:1: error: use of undeclared identifier 'uint64_t'
uint64_t x ;
^

Я также попытался установить переменные окружения GCC_INCLUDE_DIR и C_INCLUDE_DIR безрезультатно:

> env | grep INCLUDE C_INCLUDE_PATH=/Library/Developer/CommandLineTools/SDKs/MacOSX10.14.sdk/usr/include/
GCC_INCLUDE_PATH=/Library/Developer/CommandLineTools/SDKs/MacOSX10.14.sdk/usr/include/
> gcc test.c
test.c:8:9: error: expected ';' after expression
uint64_t x ;
        ^
        ;
test.c:8:1: error: use of undeclared identifier 'uint64_t'
uint64_t x ;

Теперь, если я использую 2 или 3 закомментированные строки, программа компилируется и работает просто отлично.

Так что, возможно, возникла проблема с поиском файла stdint.h. Что-то не так с моим использованием -I? Я перечитал эту строку тысячу раз, добавил пробел после -I, вынул пробел, кажется, ничего не помогает. То же самое происходит с переменными среды.

gcc и версии Mac OS:

> uname -a
Darwin Antonios-MacBook-Pro.local 18.5.0 Darwin Kernel Version 18.5.0: Mon Mar 11 20:40:32 PDT 2019; root:xnu-4903.251.3~3/RELEASE_X86_64 x86_64

> gcc --version
Configured with: --prefix=/Library/Developer/CommandLineTools/usr --with-gxx-include-dir=/Library/Developer/CommandLineTools/SDKs/MacOSX10.14.sdk/usr/include/c++/4.2.1
Apple LLVM version 10.0.1 (clang-1001.0.46.4)
Target: x86_64-apple-darwin18.5.0
Thread model: posix
InstalledDir: /Library/Developer/CommandLineTools/usr/bin
...