我注意到链接到我的应用程序的共享对象的构造函数将始终在我的应用程序构造函数之前运行,即使我的应用程序具有较低的优先级(即:较高的优先级);例如,假设这个程序:
#include <stdio.h>
static void __attribute__ ((constructor (101))) test() {
printf("test\n");
}
int main(int argc, char *argv[]) {
return 0;
}
正在链接以下共享对象:
#include <stdio.h>
static void __attribute__ ((constructor (102))) test_so() {
printf("test so\n");
}
我预计输出是:
测试
测试所以
相反,输出是相反的。
有什么理由吗?我找不到任何文件。