On Wed, Mar 10, 2004 at 01:03:41PM +0300, Dmitry Skorinko wrote: > >> а для каких версий gcc требуется перекомпиляция? Ну то есть есть у > >> меня объектный файл, компильнутый допустим в Gcc 3.2.0.... его к > >> объектам 2.95.3 прилинковать то прилинкуешь, только работать ниче не > >> будет. > AK> Во-первых, это имеет значение только в случае C++. Во-вторых, ты > AK> получишь ошибку на этапе линковки, а не во время исполнения. > > Ну вот прям щас взял и слинковал 2 объекта, скомпилированных в 3.2.2 с > одним, скомпилированным в 2.95.4 .. > типа тиго: ld -r a3.o b3.o c2.o -o d.o - нормально все..
$ cat a.cpp extern int test(); int main () { return test(); } $ cat b.cpp int test() { return 0; } $ g++-2.95 a.cpp -c -o a.o $ g++-3.3 b.cpp -c -o b.o $ g++-3.3 a.o b.o -o c.exe a.o(.text+0x7): In function `main': : undefined reference to `test(void)' collect2: ld returned 1 exit status $ g++-3.3 a.cpp -c -o a.o $ g++-3.3 a.o b.o -o c.exe > так различия только, когда 2 и 3?? Между 2.x и 3.x -- Andrey V. Kiselev Home phone: +7 812 5274898 ICQ# 26871517