引用构造函数时链接失败
linkage fails when referencing a constructor
我有两个源文件,其中一个中有一个来自我自己的类的静态成员foo。当我将其编译为目标文件时,编译器会生成一个 .ctors 部分,并在其中生成一个调用构造函数的函数,让我们将其称为 _GLOBAL__SUB_I_FOO。
在第二个源文件中,我尝试自己调用此构造函数:
int _GLOBAL__SUB_I_FOO();
int bar(){
_GLOBAL__SUB_I_FOO();
}
当我链接这两个对象时,有一个未定义的引用来自第二个文件的_GLOBAL__SUB_I_FOO。 当我使用 --reloccatable 进行链接以查看出了什么问题时,我可以看到原始构造函数已重命名为 _GLOBAL__SUB_I_FOO_0 以避免"冲突"(这是故意的(。我能做些什么来修复它? 我正在使用 gcc 7.3.0
若要执行以前在静态对象的构造函数中的代码,请将其移动到 init()
函数中,然后从构造函数(以及需要它的任何其他位置(调用该代码。
相关文章:
- 链接阶段在Ubuntu上失败,但在MacOS上失败
- Netbeans 10:错误:链接器命令失败,退出代码为 1(使用 -v 查看调用)
- 链接 c++ 动态库一直失败
- 链接器命令失败,macOS 上的退出代码为 1(使用 -v 查看调用)
- CMake 错误:链接器命令失败,退出代码为 1 和 cpp.o 文件
- clang:错误:链接器命令失败,退出代码为 1(使用 -v 查看调用) - 体系结构的未定义符号 x86_64:
- 如何修复 clang: 错误:链接器命令失败,退出代码为 1(使用 -v 查看调用)
- 如何在 Linux 中构建共享库时使未定义引用的链接器失败
- mapreduce c编程与-fPIC链接失败,如何解决?
- Xcode:链接器命令失败,退出代码为 1(使用 -v 查看调用)[C++]
- 引用构造函数时链接失败
- 通过嵌入式 IWebBrowser2 控件中的链接打开 youtube 搜索失败
- Android NDK.Build命令失败.未定义的引用.clang++:错误:链接器命令失败,退出代码为1
- CMake链接库在Docker映像中失败
- 生成库失败:无法识别文件格式;作为链接器脚本处理
- 错误:链接器命令失败,退出代码为 1(使用 -v 查看调用):在 Macbook 上
- JNI 不满意链接错误: 动态链接库 (DLL) 初始化例程失败
- C++ XCODE ld:找不到体系结构x86_64 clang 的符号:错误:链接器命令失败,退出代码为 1(使用 -
- Android Studio 链接器命令在包含 Boost 库时失败
- 链接 openGL 库失败,因为它无法打开 libgl.so ...但它就在那里