2017-01-17 3 views
-1

Я получаю ошибку сбоя сборки «с ошибкой команды компоновщика с кодом завершения 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; 
} 
+0

Пожалуйста, ** отредактируйте ** ваше сообщение с точным сообщением об ошибке. Не размещайте снимки экрана. Сообщение об ошибке должно указывать * почему * фаза связи не удалась. –

ответ

0

В основной файл вы должны быть включены в файл .h и не .cpp.

+0

это не отвечает на вопросы. пользователю нужен другой файл cpp. не файл заголовка –

Смежные вопросы

 Смежные вопросы