Когда я устанавливаю LD_BIND_NOW равным 1, а затем пытаюсь вызвать мое приложение для отладочной сборки, оно не запускается из-за неопределенных символов lstat64, когда я запускаю nm и grep для "stat64":
U lstat64@@libkernel32.so
U stat64@@libgdiuser32.so
Где "libkernel32.so" и "libgdiuser32.so" взяты из стороннего пакета и не содержат никакого определения для lstat64.
Однако сборка rls работает нормально. Когда я запускаю nm на нем и grep "stat64"
U ___lxstat64@@GLIBC_2.2
U ___xstat64@@GLIBC_2.2
T lstat64
T stat64
Я обнаружил, что отладочная версия kernel32.lib содержит:
D stat64
D lstat64
U __xstat64
U __lxstat64
Хотя в версии выпуска kernel32.lib нет ссылок на «lstat64» и «stat64»
В коде мы уже включаем "sys / stat.h", почему компоновщик не приносит
их из погонщиков?
Или мы будем использовать «__lxstat64» вместо «lstat64»?