Код: Выделить всё
...
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 Подробнее здесь: https://stackoverflow.com/questions/796 ... ng-linking