Компилятору Free Pascal не удалось связать с ошибкой «heaptrc.o: неопределенная ссылка на символ« _end »» - PullRequest
0 голосов
/ 21 февраля 2019

Я пытаюсь скомпилировать программу с помощью Free Pascal с флагом -gh, чтобы включить heaptrc, чтобы обнаружить утечку памяти и получить сообщение об ошибке

/usr/bin/ld: /usr/local/lib/fpc/3.0.4/units/x86_64-linux/rtl/heaptrc.o: undefined reference to symbol '_end'
//usr/lib/x86_64-linux-gnu/librtmp.so.1: error adding symbols: DSO missing from command line

Если я выключу флаг -gh,Моя программа успешно собрана.

Ранее флаг -gh работал нормально.Кажется, это происходит после того, как я запускаю Free Pascal кросс-компиляцию или после установки libcurl4-gnutls-dev.Я не знаю и не могу вспомнить.

Почему выдается сообщение об ошибке?

1 Ответ

0 голосов
/ 17 июня 2019

Я публикую здесь ответ Джонаса Мейбе с Форум FreePascal

Кажется, что связывание libcurl каким-то образом скрывает символ "_end": символ _end исчезает при ссылке наlibcurl

-gh нужен этот символ, чтобы знать, где заканчивается раздел инициализированных данных.Я не уверен, что FPC может что-то сделать, чтобы исправить это, поскольку это также происходит с gcc (и я не знаю другого простого способа определить этот адрес).

...