我有以下问题:我使用如下一些类来初始化 C 库:
class Hello
{
public:
Hello()
{
cout << "Hello world" << endl;
}
~Hello()
{
cout << "Goodbye cruel world" << endl;
}
} hello_inst;
如果我将此代码包含在一个 hello.cc 文件中并将它与另一个包含我的 main() 的文件一起编译,那么 hello_inst 会在调用 main() 之前创建并在调用之后销毁。在这种情况下,它只打印一些行,在我的项目中,我通过 LIBXML_TEST_VERSION 初始化 libxml。
我正在创建多个可执行文件,它们在 cmake 项目中共享许多相同的代码。根据这个线程:在 CMake 中添加多个可执行文件我创建了一个包含上面显示的代码的静态库,然后将可执行文件链接到该库。不幸的是,在这种情况下 hello_inst 永远不会被创建(并且 libxml2 永远不会被初始化)。我该如何解决这个问题?