gpt4 book ai didi

c++ - 架构 i386 的 undefined symbol :

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

我最近转向了 Mac,并且正在努力使用命令行编译器。我正在使用 g++ 进行编译,这可以很好地构建单个源文件。如果我尝试添加自定义头文件,当我尝试使用 g++ 进行编译时,我会得到架构 i386 的 undefined symbol 。然而,这些程序在 xCode 中编译得很好。我是否遗漏了一些明显的东西?

尝试使用 g++ -m32 main.cpp...不知道还能尝试什么。


好的,旧代码已编译...已将其缩小到我的构造函数。

class Matrix{
public:
int a;
int deter;

Matrix();
int det();
};

#include "matrix.h"


Matrix::Matrix(){
a = 0;
deter = 0;
}

int Matrix::det(){
return 0;

}

我的错误是体系结构 x86_64 的 undefined symbol : “矩阵::矩阵()”,引用自: ccBWK2wB.o 中的_mainld: 找不到体系结构 x86_64 的符号collect2: ld 返回 1 个退出状态

我的主要代码有

#include "matrix.h"
int main(){
Matrix m;

return 0;
}

和往常一样

最佳答案

看起来你有三个文件:

  • matrix.h,声明Matrix类的头文件;
  • matrix.cpp,实现Matrix方法的源文件;
  • main.cpp,一个定义 main() 并使用 Matrix 类的源文件。

为了生成包含所有符号的可执行文件,您需要编译这两个 .cpp 文件并将它们链接在一起。

一个简单的方法是在您的 g++clang++ 调用中同时指定它们。例如:

clang++ matrix.cpp main.cpp -o programName

或者,如果您更喜欢使用 g++ — Apple 已经有一段时间没有更新了,而且看起来在可预见的 future 也不会:

g++ matrix.cpp main.cpp -o programName

关于c++ - 架构 i386 的 undefined symbol :,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5818270/

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