У меня есть общий объект gateway.so (в Linux / C). И a. приложение использует его.
Я предполагаю: когда запускается процесс a.out, загрузчик загружает шлюз.so (я не использую функции dl, такие как dlopen
). разрешение символов времени выполнения для gateway.so будет происходить в памяти. Ему больше не нужно обращаться к gateway.so с диска.
Я прав?
Поэтому я не могу заменить gateway.so на обновленную версию, в то время как a.out работает, не так ли?
Другой связанный вопрос: однажды, когда я заменил устаревшую версию файла gateway.so, я получил сообщение
«a.out: не удается разрешить symbol 'Test_OpenGateway' "
Какой программный компонент (загрузчик / компоновщик ...) отправляет этот вывод? Этот компонент выполняется как часть того же контекста процесса?