Я хочу изменить точку входа программы с главной на самоопределяемую функцию, но кажется, что в этом случае конструктор глобальной переменной не может быть вызван.
код, подобный этому:
#include <stdin.h>
#include <stdlib.h>
const char my_interp[] __attribute__((section(".interp"))) = "/lib64/ld-linux-x86-64.so.2";
class A {
public:
A() {
printf("construct A\n");
}
};
A a;
int main() {
printf("main start\n");
}
extern "C" {
int smain() {
printf("smain start\n");
exit(0);
}
}
Команда компиляции выглядит так:
g++ -g -Wl,-e,smain -o smain smain.cc