gpt4 book ai didi

c++ - g++ 链接与 Visual C++ 链接

转载 作者:太空宇宙 更新时间:2023-11-04 12:05:18 25 4
gpt4 key购买 nike

我已经尝试让这个工作一段时间了,但无法在其他地方找到答案,这是我的问题。

当我在 Visual C++ 中创建一个静态库时,该库使用的任何依赖项都将传递到我将库链接到的可执行程序。这是一个例子

Test.lib 依赖于 - SDL - OpenGL

TestApp.exe 链接 Test.lib

在 Visual C++ 中,我不必在我的 TestApp 可执行文件中添加 Test.lib 的依赖项,它们会保留下来并且效果很好。

然而,当我将我的代码移植到 Linux g++(使用 Code::Blocks IDE)时,如果我在 g++ 中创建一个 .a 的静态库,并创建一个链接该库的 TestApp,它会得到 undefined reference 依赖关系。

g++ 能做到这一点吗?如果能,我缺少什么来将依赖项转移到我的可执行文件中?

至于我的库设置,我只是使用 IDE 的静态库设置。

最佳答案

使用 Microsoft 的编译器,头文件中可以包含库依赖信息(源文件也一样,但这通常在头文件中完成);这被编译到目标文件中,链接器理解并应用该信息。这很方便:您不必记住长而古怪的名称,如果您编译两个具有不兼容选项的源文件,您可能会遇到链接器会提示的库名称冲突。大多数编译器和链接器不会做这种事情,您必须明确地告诉链接器您要链接哪些库。

关于c++ - g++ 链接与 Visual C++ 链接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12417093/

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