GCC не будет ничего компилировать в macOS - PullRequest
0 голосов
/ 07 ноября 2019

Недавно (с тех пор, как была выпущена Catalina и обновлен xcode, но я все еще работаю в Mojave), я обнаружил, что gcc, установленный через macports, не работает. Я получаю сообщение об ошибке, в котором говорится, что система не может быть найдена:

ld: library not found for -lSystem

Я попробовал решение здесь: Не могу скомпилировать программу C на Mac после обновления до Мохаве - но когдаЯ устанавливаю macOS_SDK_headers_for_macOS_10.14.pkg, который фактически ничего не создает в /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs;все, что я вижу там, это 10.15 (Catalina) sdk!

Если я вместо этого просто sym свяжу MacOSX10.14.sdk с MacOSX10.15.sdk (возможно, не очень хорошая идея), я получу другой наборошибки:

In file included from /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/wchar.h:90,
             from /opt/local/include/gcc8/c++/cwchar:44,
             from /opt/local/include/gcc8/c++/bits/postypes.h:40,
             from /opt/local/include/gcc8/c++/iosfwd:40,
             from /opt/local/include/gcc8/c++/ios:38,
             from /opt/local/include/gcc8/c++/ostream:38,
             from /opt/local/include/gcc8/c++/iostream:39,
             from /Users/pae9/soft/src/cmake/LIGO_support/restrictHealMap.cpp:4:
/opt/local/lib/gcc8/gcc/x86_64-apple-darwin18/8.3.0/include-fixed/stdio.h:222:7: error: conflicting declaration of 'char* ctermid(char*)' with 'C' linkage
 char *ctermid(char *);

Другими словами, теперь кажется, что заголовки macports конфликтуют с заголовками xcode.

У меня никогда не было проблем;Я думаю, что эта проблема относится к последнему обновлению xcode (в настоящее время в версии 11.2 (11B52))

Любые мысли или предложения очень приветствуются - я бы очень хотел иметь возможность вернуться к компиляции кода с использованием gcc!

К вашему сведению, я использую gcc7 (из macports) для согласованности с серверами linux, которые являются моими действующими системами, но я пробовал gcc 8 и 9 и получаю те же результаты.

Ответы [ 2 ]

0 голосов
/ 07 ноября 2019

ОК, похоже, что если я выполнил ln -s, как указано выше, а также переместил #include, чтобы первым включить все мои файлы, проблема исчезнет.

Это выглядит для меня каксерьезная проблема в заголовках Apple SDK, потому что таких конфликтующих определений не должно быть ...?

0 голосов
/ 07 ноября 2019

cd /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/

sudo ln -s MacOSX10.15.sdk MacOSX10.14.sdk

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...