LIBC удален из циклической группы зависимостей во время связыванияC++

Программы на C++. Форум разработчиков
Ответить
Anonymous
 LIBC удален из циклической группы зависимостей во время связывания

Сообщение Anonymous »

Я перекрестно компиляюсь исполняемым файлом на Linux, чтобы нацелиться на Cortexa72. Исполняемый файл связывается с пакетом поддержки совета директоров, сгенерированного через программное обеспечение AMD Vitis. Из -за циклических зависимостей, присутствующих в библиотеках пакета поддержки платы (или неверного порядка связывания), я использую следующий код Cmake для выполнения связывания: < /p>

Код: Выделить всё

...
target_link_options(
myexe.elf PRIVATE
-T ${LINKER_SCRIPT} "-Wl,--start-group"
-lmylibA -lmylibB ... -lc -lgcc -lstdc++
"-Wl,--end-group"
)
...
< /code>
Однако во время связывания линкера жалуется, что он не может разрешить некоторые символы, поскольку они не определены (в данном случае системные вызовы, такие как, _close ...). Эта ошибка, кажется, имеет смысл, как следующий вызов линкера < /p>
aarch64-none-elf-g++ .... -Wl,--start-group ... -lc -lgcc -lstdc++ -Wl,--end-group ...
< /code>
приводит к удалению LIBC из «Start-end-группы» (группа циклических зависимостей): < /p>
collect2 ... --start-group ... -lgcc -lstdc++ --end-group ... -lc ...
< /code>
В этом контексте у меня есть два вопроса: < /p>

 Почему LIBC удаляется из «стартовой группы», несмотря на явное включение (так как я не так знаком с проектом GCC, я еще не нашел код в GCC. "Start-end-group" (с помощью-Start-Group ... -lc -lc ...-end-group 
результаты-start-group ... -lc ...->

Подробнее здесь: https://stackoverflow.com/questions/796 ... ng-linking
Ответить

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

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

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

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

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