[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[debian-users:35615] linking g++-3.2 object file with g++-2.95 object file



ワシといいます.たびたびお世話になっております.

debianがgcc-3.2に移行するということなので,sarge環境で
g++-3.2を試しています.今更気づいたんですが,g++-2.95
でコンパイルされたオブジェクトファイルと,g++-3.2でコン
パイルされたオブジェクトファイルとはリンクできません.
(ABIが変ったせいで?)シンポルなどが見つからなくなった
ようです.

既存のオブジェクトと新しいオブジェクトをリンクする方法
はありませんでしょうか.ご存じの方,ご教示お願いします.
g++-3.2のinfoを読んでみましたが,よくわかりません.

以下,例です.
-------------------main.cc----------------
#include "test.h"

int main() {
        Test testobject;
        testobject << 1 << std::endl;
        return 0;
}

-------------------test.h-----------------
#include <iostream>

class Test {
public:
        std::ostream& operator<<(int s);
};

-------------------test.cc----------------
#include "test.h"

std::ostream& Test::operator<<(int s) {
        std::cout << "test: " << s;
        return std::cout;
}

------------------------------------------


ryo7309:tmp$ g++-2.95 -c test.cc
ryo7309:tmp$ g++-3.2 -c main.cc
ryo7309:tmp$ g++-3.2 -o test3.2 main.o test.o
main.o(.text+0x22): In function `main':
: undefined reference to `Test::operator<<(int)'
test.o(.text+0x1a): In function `Test::operator<<(int)':
: undefined reference to `cout'
test.o(.text+0x1f): In function `Test::operator<<(int)':
: undefined reference to `ostream::operator<<(char const
*)'
test.o(.text+0x2a): In function `Test::operator<<(int)':
: undefined reference to `ostream::operator<<(int)'
test.o(.text+0x32): In function `Test::operator<<(int)':
: undefined reference to `cout'
collect2: ld returned 1 exit status


---
vachi

__________________________________________________
Do You Yahoo!?
Yahoo! BB is Broadband by Yahoo!  http://bb.yahoo.co.jp/