1

matlab や octave などのグラフ関数を使用する最も簡単な C++ ライブラリは何ですか? 私はいくつかに目を通し、それらすべてに同様の大きな問題があることを発見しました:

#include <iostream>

#include "header_to_include.h"

int main(){

   return 0;
}

私はkoolplot、いくつかのwxwidgetのもの、sdl_graph、gnuplot++、およびQtで何かを見つけました。ここのリストにあるものをいくつか見ましたが、他の言語用のものもあれば、インストーラーを使用したり、他のプログラムに依存しているものもあります。ファイルを抽出してダウンロード内から簡単なコードまたはサンプルコードをコンパイルしようとすると、コードブロックは常にヘッダーまたは変数の欠落などについて不平を言います。

私は gnuplot を使用しますが、たとえそれがパイプ経由であっても、cpp ファイルから gnuplot ファイルを作成したくありません。プログラムから直接グラフ化できるようにしたい。

含めるファイルを見つけたり、他の主要なライブラリをインストール/ダウンロードしたりする必要がなく、すぐに抽出して使用できるzip内のほんの一握りのファイルはありませんか?

編集:

たとえば、http://sdl-grapher.googlecode.com/svn/trunk/を見つけてファイルをダウンロードしました。私はすでに sdl を持っているので、sdlgraph.h を includes フォルダーにコピーし、コピーを example.c と同じディレクトリに残しました。コンパイルすると、何らかの理由で動作しないことがわかり#include <sdlgraph.h>ました。また、int main()SDL プログラムであるにもかかわらず、引数はありません。それを修正した後、次のようなファイルundefined referenceで明確に確認できる15の異なる機能を取得しますsdlgraph.hinit_graphdraw_grid

4

1 に答える 1

0

エラーについて: あなたは C++ を初めて使用するので、undefined referenceエラーについて説明します。

C++ では、次のように関数を宣言できます。

void foo();

ただし、宣言されているため、定義されているとは限りません。定義は、C++ ソース ファイル、ライブラリだけでなく、ヘッダーにも存在できます。

前の例の定義:

void foo() {
    std::cout << "void foo() has been called." << std::endl;
}

表示されるエラーは、これらの関数が定義されていないことを意味します。アプリケーションを SDL ライブラリにリンクする必要があると思います。

詳細については、http: //content.gpwiki.org/index.php/SDL :Tutorials:Setup を参照してください。

動的リンクと静的リンクの詳細については、http: //www.learncpp.com/cpp-tutorial/a1-static-and-dynamic-libraries/を参照してください。

それが役に立てば幸い!

于 2012-12-12T11:18:34.540 に答える