ld 返回的退出状态 1 是啥?
Posted
技术标签:
【中文标题】ld 返回的退出状态 1 是啥?【英文标题】:What is ld returned exit status 1?ld 返回的退出状态 1 是什么? 【发布时间】:2018-01-05 03:37:04 【问题描述】:以下是我在实现文件中为计算双向量中位数的函数编写的代码:
#include<algorithm>
#include<stdexcept>
#include<vector>
#include "median.h"
using std::domain_error;
using std::vector;
double median(vector<double> vect)
typedef vector<double>::size_type vec_sz;
vec_sz size=vect.size();
if(size==0)
throw domain_error("median of an empty vector");
sort(vect.begin(),vect.end());
vec_sz mid= size/2;
return size%2==0 ? (vect[mid]+vect[mid-1])/2 : vect[mid];
当我在命令行上使用 g++ median.cpp 编译它时得到以下信息:
/usr/lib/gcc/x86_64-linux-gnu/7/../../../x86_64-linux-gnu/Scrt1.o: In function `_start':
(.text+0x20): undefined reference to `main'
collect2: error: ld returned 1 exit status
【问题讨论】:
链接失败,返回 1。 那是什么?以及,我该如何做? 这是您发布的错误:未定义对 main 的引用。你没有main
函数。
请显示您用于编译和链接程序的命令行。
@jww 我用的是linux命令行
【参考方案1】:
错误是因为您没有main
函数。创建一个main
函数并从main函数中调用median
函数。
#include<algorithm>
#include<stdexcept>
#include<vector>
#include "median.h"
using std::domain_error;
using std::vector;
double median(vector<double> vect)
typedef vector<double>::size_type vec_sz;
vec_sz size=vect.size();
if(size==0)
throw domain_error("median of an empty vector");
sort(vect.begin(),vect.end());
vec_sz mid= size/2;
return size%2==0 ? (vect[mid]+vect[mid-1])/2 : vect[mid];
void main()
// call the median(vector<double> vect) function from here
vector<double> vect = 10,20,30; // initialize with numbers
double retval = median(vect);
【讨论】:
以上是关于ld 返回的退出状态 1 是啥?的主要内容,如果未能解决你的问题,请参考以下文章
为啥它显示像 ld 返回 1 退出状态和未定义的引用 `powr(int, int)' 之类的错误