我正在增强一个工具。
请注意,此工具将链接到测试程序,该程序将具有main( )
功能,因此我的工具无法使用main。该工具具有许多测试程序将使用的功能。
另外,我想为这个工具添加一个计时器。这个想法是:当测试程序链接到这个工具并启动时,计时器应该自动启动。
如果这是C ++,我会创建一个带有构造函数的类,这样无论何时加载类,都会先调用构造函数,然后我可以在构造函数中初始化我的计时器。
如果这是Java,我会简单地创建一个全局静态块,并将定时器代码放在静态块中。
但我的工具纯粹是在Linux中使用C语言,那么我该如何实现这一目标呢?
请帮帮我。
答案 0 :(得分:4)
这看起来也像你的情况:
How do I get the GCC __attribute__ ((constructor)) to work under OSX?
来自GCC docs:
构造
析构函数
构造函数(优先级)
析构函数(优先级)构造函数属性导致 要自动调用的函数 在执行之前进入main()。 同样,析构函数属性 导致调用该函数 在main()之后自动执行 已完成或退出()已被调用。 具有这些属性的函数是 用于初始化将要的数据 在...期间隐式使用 执行该计划。
答案 1 :(得分:2)
为调用crt*.o
的{{1}}目标文件编写您自己的替代品,并在构建时链接到该文件。