Существует пример кода C, связывающего две статические библиотеки. Этот код скомпилирован через Makefile. Файл make генерирует в первую очередь объектный файл из исходного файла, а затем скрывает его в исполняемый файл с помощью следующих команд. Кроме того, связывает две библиотеки с скомпилированным кодом:Ошибка gcc на код может быть правильно скомпилирована cc и g77
cc -I. -DUNIX -c cademo1.c
g77 -o cademo1 cademo1.o ../libChemAppC.a ../libLChemApp.a
Эти две команды являются выходными данными Makefile. Если я смогу запустить их самостоятельно, они будут работать.
Теперь мне нужно компилировать код, GCC:
$ gcc -static cademo1.c -L.. -lChemAppC -lLChemApp -o cademo1
Но это делает сотни таких ошибок:
.
.
.
rtrnshdr.f:(.text+0x1551): undefined reference to `s_rsue'
rtrnshdr.f:(.text+0x1564): undefined reference to `do_uio'
rtrnshdr.f:(.text+0x156c): undefined reference to `e_rsue'
../libLChemApp.a(bindummy.o): In function `tqhbix_':
bindummy.f:(.text+0x11): undefined reference to `s_copy'
../libLChemApp.a(dt.o): In function `tqdtforid_':
dt.f:(.text+0x11): undefined reference to `s_copy'
../libLChemApp.a(dt.o): In function `tqhdt_':
dt.f:(.text+0x5c): undefined reference to `G77_date_and_time_0'
dt.f:(.text+0x86): undefined reference to `s_wsfi'
dt.f:(.text+0x99): undefined reference to `do_fio'
dt.f:(.text+0xad): undefined reference to `do_fio'
dt.f:(.text+0xc3): undefined reference to `do_fio'
dt.f:(.text+0xd7): undefined reference to `do_fio'
dt.f:(.text+0xed): undefined reference to `do_fio'
../libLChemApp.a(dt.o):dt.f:(.text+0x101): more undefined references to `do_fio' follow
../libLChemApp.a(dt.o): In function `tqhdt_':
dt.f:(.text+0x173): undefined reference to `e_wsfi'
../libLChemApp.a(dt.o): In function `tqhdat_':
dt.f:(.text+0x1f4): undefined reference to `G77_date_and_time_0'
../libLChemApp.a(dt.o): In function `tqhgmy_':
dt.f:(.text+0x22d): undefined reference to `G77_date_and_time_0'
../libLChemApp.a(progcali.o): In function `tqhpnid_':
progcali.f:(.text+0x17): undefined reference to `s_copy'
progcali.f:(.text+0x2c): undefined reference to `s_copy'
progcali.f:(.text+0x44): undefined reference to `s_copy'
progcali.f:(.text+0x5c): undefined reference to `s_copy'
progcali.f:(.text+0x74): undefined reference to `s_copy'
../libLChemApp.a(progcali.o):progcali.f:(.text+0xf7): more undefined references to `s_copy' follow
collect2: error: ld returned 1 exit status
Может кто-нибудь сказать мне, как я могу скомпилировать программу НКУ, которая может быть правильно скомпилирован cc и g77?
Есть ли какие-либо компиляторы args, которые могут быть добавлены в gcc для функций, подобных g77?
'g77' - компилятор fortran ... почему« gcc »сможет сделать то же самое? Однако вы должны заменить 'cc' на' gcc' в этих исходных командах. Полагаю, вы могли бы сказать gcc'у работать в режиме fortran с флагом тоже ... это может сработать. –