gpt4 book ai didi

c++ - C++代码的静态链接

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:48:45 25 4
gpt4 key购买 nike

我有以下问题:我使用如下类来初始化 C 库:

class Hello
{
public:
Hello()
{
cout << "Hello world" << endl;
}

~Hello()
{
cout << "Goodbye cruel world" << endl;
}

} hello_inst;

如果我将此代码包含在 hello.cc 文件中并将其与另一个包含我的 main() 的文件一起编译,则 hello_inst 会在调用之前创建并在调用之后销毁到主要()。在这种情况下,它只打印一些行,在我的项目中,我通过初始化 libxmlLIBXML_TEST_VERSION。

我正在创建多个可执行文件,它们在一个 cmake 项目中共享很多相同的代码。根据这个线程:Adding multiple executables in CMake我创建了一个包含上面所示代码的静态库,然后将可执行文件链接到该库。不幸的是,在这种情况下,永远不会创建 hello_inst(并且永远不会初始化 libxml2)。我该如何解决这个问题?

最佳答案

我有一个类似的问题并通过将我的库定义为静态来解决它。因此我使用了以下代码:

add_library( MyLib SHARED ${LBMLIB_SRCS} ${LBMLIB_HEADER})

也许这可以解决您的问题

关于c++ - C++代码的静态链接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16857771/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com