mac*_*ard 5 c++ macos terminal linker g++
我最近搬到了mac,并且正在努力使用命令行编译器.我正在使用g ++进行编译,这可以很好地构建单个源文件.如果我尝试添加自定义头文件,当我尝试使用g ++编译时,我会得到架构i386的未定义符号.然而,程序在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;
}
Run Code Online (Sandbox Code Playgroud)
我的错误是架构x86_64的未定义符号:"Matrix :: Matrix()",引用自:ccBWK2wB中的_main.l ld:找不到架构x86_64的符号collect2:ld返回1退出状态
我的主要代码有
#include "matrix.h"
int main(){
Matrix m;
return 0;
}
Run Code Online (Sandbox Code Playgroud)
和通常一样
小智 7
看起来你有三个文件:
Matrix该类的头文件;Matrix方法的源文件;main()和使用Matrix该类的源文件.为了生成包含所有符号的可执行文件,您需要编译两个.cpp文件并将它们链接在一起.
一种简单的方法是在您的g++或clang++调用中指定它们.例如:
clang++ matrix.cpp main.cpp -o programName
Run Code Online (Sandbox Code Playgroud)
或者,如果你喜欢使用g++- 苹果公司有一段时间没有更新,看起来他们在可预见的未来不会:
g++ matrix.cpp main.cpp -o programName
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
18116 次 |
| 最近记录: |