2 Stimmen

Verknüpfung von Programmen mit C++ Projekten in Eclipse? Linux

Ich erhalte den Befehl, Programme zu verknüpfen:

g++ -o prog_name prog_name.cc -lsicklms-x -pthread

Ich verwende jedoch nicht die Befehlszeile, sondern Eclipse.

Mein Projekt heißt "Test" und ich habe nur 1 Klasse "main.cpp", die dies ist:

/*
 * Test.cpp
 *
 *  Created on: Dec 1, 2011
 *      Author: igvc
 */
#include <iostream>
#include <sicklms-1.0/SickLMS.hh>
using namespace std;
using namespace SickToolbox;
int main(int argc, char *argv[]) {
    /* Specify device path and baud */
    string dev_path = "/dev/ttyUSB0";
    sick_lms_baud_t lms_baud = SickLMS::SICK_BAUD_38400;
    /* Define buffers for return values */
    unsigned int measurements[SickLMS::SICK_MAX_NUM_MEASUREMENTS] = {0};
    unsigned int num_measurements = 0;
    /* Instantiate the object */
    SickLMS sick_lms(dev_path);
    try {
        /* Initialize the device */
        sick_lms.Initialize(lms_baud);
        /* Grab some measurements */
        for(unsigned int i = 0; i < 10; i++) {
            sick_lms.GetSickScan(measurements,num_measurements);
            cout << "\t" << num_measurements << endl;
        }
        /* Uninitialize the device */
        sick_lms.Uninitialize();
    }
    catch(...) {
        cerr << "error" << endl;
        return -1;
    }
    return 0;
}   

Ich erhalte all diese Fehler:

undefined reference to `SickToolbox::SickLMS::~SickLMS()`
undefined reference to `SickToolbox::SickLMS::GetSickScan(unsigned int*, unsigned int&, unsigned int*, unsigned int*, unsigned int*, unsigned int*, unsigned int*)' 
undefined reference to `SickToolbox::SickLMS::Initialize(SickToolbox::SickLMS::sick_lms_baud_t)'
undefined reference to `SickToolbox::SickLMS::SickLMS(std::basic_string<char, std::char_traits<char>, std::allocator<char> >)'
undefined reference to `SickToolbox::SickLMS::Uninitialize()'

Ich denke also, dass es sich um ein Problem der Verknüpfung handelt. Und ich habe den oben genannten Befehl zu verknüpfen, die das Tutorial sagt, ist erforderlich, aber ich bin nicht sicher, wie man es in Eclipse einrichten.

Wo der Code sagt #include sicklms-1.0/SickLMS.hh Ich bin zu Project>Properties>C/C++ Build>Settings>GCC C++ Compiler>Directories gegangen und habe das Verzeichnis zur .h Datei hinzugefügt und das hat das Problem gelöst, aber jetzt bekomme ich diese Fehler. Ich bin zu GCC C++ Linker>Bibliotheken>Bibliothekssuchpfad(-L) gegangen und habe das Verzeichnis sicktoolbox-1.0.1 hinzugefügt, aber ich weiß nicht, was ich in den Teil Bibliotheken(-l) eingeben soll.

Vielen Dank für jede Hilfe, ich stecke wirklich fest in dieser Sache.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X