У меня есть main.cpp, который вызывает внешнюю функцию foo ().extern int foo(int x, double y, const std::string& z, std::string& w);
объявлено в main.cpp.Также я могу создать объектный файл main.o.Использование nm
показывает следующую подпись U _Z3fooidRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERS4_
.
Можно ли изменить это определение функции и вызов функции для foo2 () в main.o?Я использовал objcopy
, но не могу понять, как изменить само определение внешней функции, скажем, на extern int foo2(double y, const std::string& z, std::string& w);
и заменить символ.Может кто-нибудь помочь мне с этим?
Спасибо!
PS: я использую call (foo, list args) для вызова функции foo () из этого поста - Создание вызова функциидинамически в C ++