Ошибка, связанная с C ==> clang: ошибка: команда компоновщика завершилась ошибкой с кодом выхода 1 (используйте -v, чтобы увидеть вызов)

#c #eclipse #cmake #clang #clion

#c #eclipse #cmake #clang #clion

Вопрос:

У меня есть следующий код c , который отлично компилируется в терминале с использованием g .

 g   pointTypeMain.cpp pointTypeImp.cpp -o pointType
  

Однако это сбой, когда я пытаюсь запустить его в IDE. Проблема со связыванием. но я не уверен, как это исправить.

 // pointType.h
#ifndef H_PointType
#define H_PointType

class pointType
{
public:
    void setPoint(double x, double y);
    void print() const;
    double getX() const;
    double getY() const;
    pointType(double x = 0.0, double y = 0.0);

protected:
    double xCoordinate;
    double yCoordinate;
};

#endif

//Implementation File pointTypeImp.cpp

#include <iostream>
#include "pointType.h"

using namespace std;

void pointType::setPoint(double x, double y)
{
    xCoordinate = x;
    yCoordinate = y;
}

void pointType::print() const
{
    cout << "(" << xCoordinate << ", "
         << yCoordinate << ")" << endl;
}

double pointType::getX() const
{
    return xCoordinate;
}

double pointType::getY() const
{
    return yCoordinate;
}

pointType::pointType(double x, double y)
{
    xCoordinate = x;
    yCoordinate = y;
}


// Main implementation

#include <iostream>
#include <iomanip>
#include "pointType.h"

using namespace std;

int main()
{
    pointType point1(3.5, 2.5);
    pointType point2;

    cout << fixed << showpoint;
    cout << setprecision(2);

    cout << "Point 1: ";
    point1.print();
    cout << endl;

    point2.setPoint(-2.5, 7);

    cout << "Point 2: ";
    point2.print();
    cout << endl;


    return 0;
}
  

Ошибка O / p:

 ====================[ Build | pointType | Debug ]===============================
/Applications/CLion.app/Contents/bin/cmake/mac/bin/cmake --build /Users/vpangul/CLionProjects/pointType/cmake-build-debug --target pointType -- -j 4
[ 50%] Linking CXX executable pointType
Undefined symbols for architecture x86_64:
  "_main", referenced from:
     implicit entry/start for main executable
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
make[3]: *** [pointType] Error 1
make[2]: *** [CMakeFiles/pointType.dir/all] Error 2
make[1]: *** [CMakeFiles/pointType.dir/rule] Error 2
make: *** [pointType] Error 2
  

Я получаю следующую ошибку, когда пытаюсь собрать ее в IDE (пробовал eclipse, CLion ). Кто-нибудь может помочь? Прилагаю скриншот свойств проекта.Свойства цепочки инструментов проекта

Комментарии:

1. Похоже, что вы не компилируете pointTypeMain.cpp файл, содержащий определение main функции. Покажите CMakeLists.txt файл, который вы используете для своего пакета.

2. Это правильно! Я добавил этот отсутствующий файл в cmakelist.txt и теперь он компилируется нормально.