Ошибка Cygwin 64 g++ -fuse-linker-plugin
Я получаю следующую ошибку при попытке скомпилировать очень базовую программу на С++.
$ g++ -fuse-linker-plugin test.cpp
g++: fatal error: -fuse-linker-plugin, but cyglto_plugin.dll not found
compilation terminated.
код
int main() {
return 0;
}
Это использование g++, установленное прямо из новой установки Cygwin.
Если я ищу файл там, он существует и находится по адресу:
/usr/libexec/gcc/x86_64-pc-cygwin/4.8.2/cyglto_plugin.dll
Как сделать Cygwin 64 правильно понятным?
Ответы
Ответ 1
Я предполагаю, что вы только проверили пакет gcc-g++ при установке. Обратите внимание, что версия 4.8.1-3, но на следующей странице вы можете увидеть множество зависимостей, установленных, например, libgcc с версией 4.8.2.
Это соединение из 4.8.1 и 4.8.2 кажется проблемой.
В программе установки скопируйте все зависимости в редактор, найдите 4.8.2, чтобы найти проблемные пакеты, вернитесь в установщик и щелкните эти пакеты, пока не будет установлено 4.8.1-3.
Двойная проверка, что вы не устанавливаете последнюю версию этих пакетов.
Ответ 2
В последнее время был установлен apt-cyg, g++ 4.9.2, но gcc-core 4.8.2 остался.
Решено:
apt-cyg remove gcc-g++
apt-cyg remove gcc-core
apt-cyg install gcc-g++
Ответ 3
Две версии gcc вызывали пробой, проверяли папку /usr/libexec/gcc/x 86_64-pc-cygwin/, было бы две версии gcc.
Чтобы решить удалить один.
Ответ 4
Вышеприведенный ответ сработал у меня, но я попался у установщика, автоматически обновляющего пакеты до 4.8.2. Итак, я изначально думал, что это не сработало; это на самом деле. Вам просто нужно знать об этом при использовании установщика для добавления пакетов позже, он может попытаться снова вернуться к 4.8.2 и сломать вещи.
Есть возможность отключить LTO с -fno-use-linker-plugin
, но это не делает мне ничего хорошего, потому что CPAN - это запуск g++. Это может быть обходным путем.
(Я знаю, что это не очень важный ответ, но я не мог комментировать)