Как подменить int main(int argc, char** argv) на свою функцию?
Каким образом можно подменить точку входа cpp программы на свою функцию так, чтобы не отваливалась инициализация libc? Например, на int main(const std::vector& args)
То что вы хотите - это не подмена. Это совершенно другая функция. И если компилятор считает, что точка входа должна быть с другим прототипом - то у вас два варианта - смириться или переписать компилятор.
почему же? Есть, например, в gcc _start, которая вызывает __libc_start_main, которая непосредственно обращается к main. Вопрос в том, что если трогать это добро, то нужно самому проводить всю инициализацию libc, чего хотелось бы избежать. Более того, я уже успешно компилировал код с точкой входа вида int main(char* arg), только вот libc отвалилась при этом.
CosmoMegaSuperBlaster: Пока вы тут занимаетесь ерундой, у кого-то реальные проекты по подобной тематике, как-то подмена разных функций, и на кону гонорар.
Adamos: Если мыслить так прямолинейно, то для максимальной продуктивности нужно работать буквально 24 часа в сутки, ведь сон занимает время, а значит, он вреден, верно? Я тоже подобное попробовал, хотя оно выглядело не таким абсурдным, но все равно результат - тяжелый нервный срыв, после которого еще не скоро получится взяться за работу. Вернее, заставить-то взяться можно, но продуктивность нулевая. Уж лучше на Тостер, а как обнаружится, что мозг восстановился (способ проверки тот же, что и у цифровых ЭВМ, это MIPS, ничто другое не объективно для такой сложной системы), тогда и за работу!
Rou1997: я имел в виду несколько иное. Если вы подрядились сделать работу, но не знаете, как, и сроки горят - то логичнее учиться не длинным путем (форумы, Q&A и эксперименты), а коротким - найти спеца, оплатить ему работу, а потом уже, соблюдя сроки, спокойно изучать то, что он смог сделать вместо вас.