Невозможно скомпилировать программы на C++ в MacOS [дубликат]C++

Программы на C++. Форум разработчиков
Ответить
Anonymous
 Невозможно скомпилировать программы на C++ в MacOS [дубликат]

Сообщение Anonymous »


Я не уверен, что произошло, вчера потратил много времени на компиляцию проектов из исходного кода и их установку, чтобы попытаться заставить какое-то программное обеспечение работать, последний проект, который я видел, мой ./configure потерпел неудачу, потому что Я не мог запустить программу на C++. Итак, я думаю, что в какой-то момент один из моих запусков sudo make install, возможно, испортил мои системные библиотеки?

Я могу скомпилировать минимальную программу на C++, но получаю ошибку, связанную с rpath для libc++:

% cat test.cpp int main(){} % g++ test.cpp % ./a.out dyld[4441]: библиотека не загружена: @rpath/libc++.1.dylib Ссылка: /Users/my_user/a.out. Причина: LC_RPATH не найден. zsh: прервать ./a.out Совершенно не понимаю, что здесь происходит. У меня есть библиотеки libc++:

% ls /usr/local/lib/libc++* /usr/local/lib/libc++.1.0.dylib /usr/local/lib/libc++.a /usr/local/lib/libc++abi.1.0.dylib /usr/local/lib/libc++abi.a /usr/local/lib/libc++experimental.a /usr/local/lib/libc++.1.dylib /usr/local/lib/libc++.dylib /usr/local/lib/libc++abi.1.dylib /usr/local/lib/libc++abi.dylib И если я вручную задаю путь, это работает:

% g++ test.cpp -o a.out -Wl,-rpath,/usr/local/lib % ./a.out Но мне бы очень хотелось просто вернуться к тому, чтобы мой компилятор мог найти libc++ без моего явного указания ему проверять /usr/local/lib

До сих пор я пробовал обновить MacOS и переустановить инструменты командной строки XCode, но ничего не помогло.

Есть идеи, что происходит и как это исправить?

Обновление: проблема частично решена.

Похоже, возникла проблема с моим dyld, он никогда не выполняет поиск в библиотеках по умолчанию. Если я вручную установил export DYLD_FALLBACK_LIBRARY_PATH=$HOME/lib:/usr/local/lib:/lib:/usr/lib, теперь он ищет пути по умолчанию. Очень странное поведение. Люди мгновенно отмечают каждый вопрос как дубликат, хотя даже не понимают, что вопрос делает stackoverflow довольно бесполезным, кстати.
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C++»