STL vector typedef リンカエラー


skt  2005-12-03 02:36:53  No: 59865

初めて投稿させて頂きます。

VC++では無いため不適切な投稿かもしれませんが、もしご存じの方がいらっしゃればと思い、投稿させて頂きました。
stlを利用してプログラムを書いています。
以下のように、hoge1.hの中で、適当な構造体をtypedefしてそのvectorコンテナを作り、それをhoge1.ccの中で使っています。
このとき、コンパイルではエラーが出ませんが、リンカ(g++ ver.3.3.2)でリンクしようとする際に、hoge1.ccの中で、定義したvectorコンテナを宣言する部分でエラーが出ます。内容は、

In function 'std__simple_alloc<struct1, std::__default_alloc_template<(bool)1,(int)0> >::deallocate(struct1*, unsigned)':
undefined reference to 'std::__default_alloc_template<(bool)1,(int)0>::deallocate(void*, unsigned)'

といったようなものです。
別のOS上で、古いバージョンのg++を私用し多彩にはエラーが出ません。
どの辺りが不味いのか、御教示頂ける方がいらっしゃいましたら幸いです。
どうぞ宜しくお願い致します。

hoge1.h
-----
typedef struct{
double A;
double B;
}struct1;

typedef std::vector<struct1> struct1_vector;
-----

hoge1.cc
-----
struct1_vector hogehoge;


REE  2005-12-03 02:55:06  No: 59866

環境に依存すると書いているのに、
肝心のエラーが出る環境が記載されてないのですが・・


skt  2005-12-03 05:23:27  No: 59867

返信を頂きありがとうございます。
情報が不足しておりました。

環境は、Linux上でkernel 2.4.27上でgcc 3.3.2に含まれるg++ 3.3.2を使用しております。他のSTLライブラリ等は私用していません。
正確なバージョンを忘れてしまいましたが、別のLinux環境で、g++の2.xxでコンパイル・リンクした際には問題ありませんでした。

OSまでWindowsではなく、VC++とかなり離れてしまっており、申し訳ありません。


επιστημη  2005-12-04 00:27:34  No: 59868

struct struct1 {
  double A;
  double B;
};

typedef std::vector<struct1> struct1_vector;

これでもダメすか?


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加