На тот случай, если у кого-то все еще есть эта проблема (у меня это с расширениями spacemacs до company-clang
, но я ожидаю, что проблема та же) ...
Аргумент clang -framework
, по-видимому, передается компоновщику, тогда как clang -cc1
касается исключительно компиляции (поэтому он не знает или не поддерживает параметры компоновщика; он, по-видимому, принимает аргумент linker-option=<option>
, который работал для меня в моей оболочке, но не был распознан при добавлении в файл .clang_complete
). Фреймворк - это просто набор вложенных коллекций заголовков, поэтому вы можете просто включить все необходимые заголовки в фреймворк вручную с помощью -I
, и он будет работать.
Пример для Qt5:
Вместо ...
-F/usr/local/opt/qt5/lib
-framework QtCore
использование ...
-I/usr/local/opt/qt5/lib/QtCore.framework/Versions/Current/Headers
Полагаю, вам, возможно, придется провести некоторый самоанализ заголовков в вашей конкретной среде, чтобы точно определить, какие каталоги включать. Их может быть много. Не очень красиво, но это работает (по крайней мере, в моем случае).