hellkite 日記と雑記とメモ。

Shiki Kazamaの駄文と音楽と、時々技術な感じ

STLを使用したコードをコンパイルしてエラーが出たら


スポンサーリンク


GCCで次のようなコードをコンパイルしようとしたらundefined reference to ...ってエラーが出た。

// queue_test.cpp
#include <queue>
#include <iostream>

using namespace std;

int main() {
        priority_queue<int> qu;
        qu.push(10);
        qu.push(20);
        qu.push(5);

        while(!qu.empty()) {
                cout << qu.top() << endl;
                qu.pop();
        }

        return 0;
}


調べたらGCCSTLを利用したプログラムをコンパイルする際には、"-lstdc++"オプションが必要だそうな。

gcc queue_test.cpp -lstdc++


で、もう少し検索してみたらg++を使えばオプションの指定はいらないみたい。

g++ queue_test.cpp

g++は内部的にgccをコールしているらしい。C++使うときはg++使った方が楽。


それにしてもSTLでエラーが発生したときにでるエラーメッセージの意味不明っぷりは凄い。