GCC 4.7, включая <stdatomic.h>
Я только что скомпилировал GCC 4.7 для работы с stdatomic.h
но я не могу -I
Это. stdatomic.h
кажется, живет в /usr/include/c++/4.4.3
, но затем компоновщик говорит мне, что ему нужно несколько других файлов в директории поблизости. Если я -I
все они, я все еще получаю ошибку undefined reference to atomic_flag_clear_explicit
, Любые идеи, как я должен связать это право?
3 ответа
Во-первых, если вы компилируете с GCC 4.7, вы не должны включать или связывать что-либо из каталога из GCC 4.4.
Во-вторых, -I
влияет только на путь поиска для заголовочных файлов. "неопределенная ссылка" является ошибкой компоновщика и обычно означает, что она не нашла нужную библиотеку. Вы изменяете путь поиска библиотеки с -L
, Линкер не сказал, что не нашел библиотеку с правильным названием, он сказал, что не нашел символа, поэтому ясно, что в найденной библиотеке не было этого символа. Я бы посоветовал вам иметь проблему с версиями, возможно, вызванную проблемой установки.
Заголовок
Компилятор C++ поддерживает атомарность C++ 11 через заголовок C++ 11
Когда компилятор C поддерживает атомарность C11, заголовок
Использование этой команды решило проблему для меня:
$ scl enable devtoolset-7 bash
У меня такая же ошибка как и у вас при входе
sudo make altinstall
для установки Python 3.8.5 на CentOS 7.