Qt有Q_COREAPP_STARTUP_FUNCTION
宏来注册一个要作为QCoreApplication
构造函数的一部分调用的函数。如果在应用程序或动态链接库中使用,这可以正常工作。但是,如果在静态库中使用,则不会执行该函数。
据我所知,该宏创建了一个静态类,其中构造方法将该方法传递给Qt框架。但由于该类没有在任何地方使用,链接器只是在链接最终应用程序时将其排除。
这里的问题是:我的假设是否正确?有没有办法告诉编译器不要排除这样的实例?问题是我不知道是否使用了多少,因此明确地引用它们是不切实际的。所有编译器(msvc,gcc,clang)的解决方案都是必需的。