plotutils in Visual C++



  • Hallo liebe Community!
    Ich bin hier neu und hoffe darauf Hilfe zu finden!

    Ich versuche die GNU Bibliotheken "plotutils" unter Microsoft Visual Studio 2010 zum laufen zu bringen.

    Es gibt dafür ein Beispielprogramm:

    #include "stdafx.h"
    #define X_DISPLAY_MISSING
    #include <plotter.h>
    const int maxorder = 12;
    using namespace std;
    void draw_c_curve (Plotter& plotter, double dx, double dy, int order)
    {
    if (order >= maxorder)
    plotter.fcontrel (dx, dy); // continue path along (dx, dy)
    else
    {
    draw_c_curve (plotter,
    0.5 * (dx - dy), 0.5 * (dx + dy), order + 1);
    draw_c_curve (plotter,
    0.5 * (dx + dy), 0.5 * (dy - dx), order + 1);
    }
    }
    int main ()
    {
    // set a Plotter parameter
    PlotterParams params;
    params.setplparam ("PAGESIZE", (char *)"letter");
    PSPlotter plotter(cin, cout, cerr, params); // declare Plotter
    if (plotter.openpl () < 0) // open Plotter
    {
    cerr << "Couldn’t open Plotter\n";
    return 1;
    }
    plotter.fspace (0.0, 0.0, 1000.0, 1000.0); // specify user coor system
    plotter.flinewidth (0.25); // line thickness in user coordinates
    plotter.pencolorname ("red"); // path will be drawn in red
    plotter.erase (); // erase Plotter’s graphics display
    plotter.fmove (600.0, 300.0); // position the graphics cursor
    draw_c_curve (plotter, 0.0, 400.0, 0);
    if (plotter.closepl () < 0) // close Plotter
    {
    cerr << "Couldn’t close Plotter\n";
    return 1;
    }
    return 0;
    }
    

    zuerst bekam ich etwas mehr als 100 fehler lt. Compiler, die ich stück für stück abgearbeitet habe. nun bleiben mir noch 13 mit denen ich nichts anfangen kann.
    Ich hab dem Linker (meiner meinung nach) auch die benötigten files angegeben.

    Fehler sind alle gleicher natur:

    1>libplot3.obj : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol ""public: int __thiscall Plotter::fcontrel(double,double)" (?fcontrel@Plotter@@QAEHNN@Z)" in Funktion ""void __cdecl draw_c_curve(class Plotter &,double,double,int)" (?draw_c_curve@@YAXAAVPlotter@@NNH@Z)".
    1>libplot3.obj : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol ""public: int __thiscall Plotter::closepl(void)" (?closepl@Plotter@@QAEHXZ)" in Funktion "_main".
    1>libplot3.obj : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol ""public: int __thiscall Plotter::fmove(double,double)" (?fmove@Plotter@@QAEHNN@Z)" in Funktion "_main".
    1>libplot3.obj : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol ""public: int __thiscall Plotter::erase(void)" (?erase@Plotter@@QAEHXZ)" in Funktion "_main".
    1>libplot3.obj : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol ""public: int __thiscall Plotter::pencolorname(char const *)" (?pencolorname@Plotter@@QAEHPBD@Z)" in Funktion "_main".
    1>libplot3.obj : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol ""public: int __thiscall Plotter::flinewidth(double)" (?flinewidth@Plotter@@QAEHN@Z)" in Funktion "_main".
    1>libplot3.obj : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol ""public: int __thiscall Plotter::fspace(double,double,double,double)" (?fspace@Plotter@@QAEHNNNN@Z)" in Funktion "_main".
    1>libplot3.obj : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol ""public: __thiscall PlotterParams::~PlotterParams(void)" (??1PlotterParams@@QAE@XZ)" in Funktion "_main".
    1>libplot3.obj : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol ""public: virtual __thiscall PSPlotter::~PSPlotter(void)" (??1PSPlotter@@UAE@XZ)" in Funktion "_main".
    1>libplot3.obj : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol ""public: int __thiscall Plotter::openpl(void)" (?openpl@Plotter@@QAEHXZ)" in Funktion "_main".
    1>libplot3.obj : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol ""public: __thiscall PSPlotter::PSPlotter(class std::basic_istream<char,struct std::char_traits<char> > &,class std::basic_ostream<char,struct std::char_traits<char> > &,class std::basic_ostream<char,struct std::char_traits<char> > &,class PlotterParams &)" (??0PSPlotter@@QAE@AAV?$basic_istream@DU?$char_traits@D@std@@@std@@AAV?$basic_ostream@DU?$char_traits@D@std@@@2@1AAVPlotterParams@@@Z)" in Funktion "_main".
    1>libplot3.obj : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol ""public: int __thiscall PlotterParams::setplparam(char const *,void *)" (?setplparam@PlotterParams@@QAEHPBDPAX@Z)" in Funktion "_main".
    1>libplot3.obj : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol ""public: __thiscall PlotterParams::PlotterParams(void)" (??0PlotterParams@@QAE@XZ)" in Funktion "_main".
    1>C:\Users\Theodor\documents\visual studio 2010\Projects\libplot3\Debug\libplot3.exe : fatal error LNK1120: 13 nicht aufgelöste externe Verweise.
    

    ob mir dabei vielleicht jemand helfen könnte? Ich wäre sehr dankbar,
    mfg KillerLink



  • Sieht so aus, als ob die Bibliothek nicht mitgelinkt wurde. Zumindest fehlen dem Linker die .lib oder die .obj, in der die Definitionen zu den Klassen Plotter und PlotterParams zu finden sind.



  • Hi also zuerst einmal Danke für deine Antwort.

    Ich gebe dem Linker zusätzlich folgende .lib dateien mit: libplotter.lib;libplot.lib;libxmi.lib;

    .obj datein habe ich keine gefunden, die ich übergeben könnte.

    Weißt du eventuell genauer was ich linken muss?

    mfg



  • Ich kenn die Bibliothek nicht. Aber libplotter.lib klingt nicht schlecht. Ist die Frage, ob du die Header richtig eingebunden hast, was der #define verursacht usw. Gibts da ein Tutorial-Beispiel? Falls ja, dann versuch erstmal das zum Bauen und Laufen zu bringen.



  • Das ist das Tutorial Beispiel. Leider gibt es keine sehr ausführliche Beschreibung.


Log in to reply