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; }
調べたらGCCでSTLを利用したプログラムをコンパイルする際には、"-lstdc++"オプションが必要だそうな。
gcc queue_test.cpp -lstdc++
で、もう少し検索してみたらg++を使えばオプションの指定はいらないみたい。
g++ queue_test.cpp
g++は内部的にgccをコールしているらしい。C++使うときはg++使った方が楽。
それにしてもSTLでエラーが発生したときにでるエラーメッセージの意味不明っぷりは凄い。