Я получаю ошибку сбоя сборки «с ошибкой команды компоновщика с кодом завершения 1» Я проверил другие сообщения на форуме, которые говорят о дублировании вызовов функций которые путают линкер. У меня не очень много опыта работы с C++, поэтому я бы очень хотел помочь!Не удалось выполнить команду компоновщика XCode C++ с кодом выхода 1 (использовать -v для вызова вызова)
л.д.: 1 дубликат символа для архитектуры x86_64 лязг: ошибка: команда линкера потерпела неудачу с кодом выхода 1 (использование -v, чтобы увидеть вызова)
LINE.H
#include <stdio.h>
#include <string>
using namespace std;
class RuntimeException { // generic run-time exception
private:
string errorMsg;
public:
RuntimeException(const string& err) { errorMsg = err; }
string getMessage() const { return errorMsg; }
};
// All that is needed for the special exceptions is the inherited constructor and method.
class EqualLines: public RuntimeException
{
public:
EqualLines(const string& err)
: RuntimeException(err) {}
};
class ParallelLines: public RuntimeException
{
public:
ParallelLines(const string& err)
: RuntimeException(err) {}
};
class Line {
public:
Line(double slope, double y_intercept): a(slope), b(y_intercept) {};
double intersect(const Line L) const throw(ParallelLines,
EqualLines);
double getSlope() const {return a;};
double getIntercept() const {return b;};
private:
double a;
double b;
};
ЛИНИЯ .CPP
#include "line.h"
#include <iostream>
double Line::intersect(const Line L) const throw(ParallelLines,
EqualLines)
{
if (this->a == L.a && this->b == L.b)
{
throw "EqualLines";
}
else if (this->a == L.a)
{
throw "ParallelLines";
}
return (L.b - this->b)/(this->a - L.a);
}
М.А. IN.CPP
#include "line.cpp"
#include <iostream>
int main()
{
Line L(2.0, 4.0);
Line K(3.0, 5.0);
try
{
if (L.getSlope() == K.getSlope() && L.getIntercept() == K.getIntercept())
throw EqualLines("The lines are equal: infinite intersection");
else if (L.getSlope() == K.getSlope())
throw ParallelLines("The lines are parallel: no intersection");
}
catch(EqualLines& zde)
{
}
catch(ParallelLines& zde)
{
}
cout << "Line 1: Y = " << L.getSlope() << "x + " << L.getIntercept();
cout << "\n";
cout << "Line 2: Y = " << K.getSlope() << "x + " << K.getIntercept();
cout << "\n\n";
L.intersect(K);
return 0;
}
Пожалуйста, ** отредактируйте ** ваше сообщение с точным сообщением об ошибке. Не размещайте снимки экрана. Сообщение об ошибке должно указывать * почему * фаза связи не удалась. –