コンパイルオプションでプログラムをコンパイルしようとすると、ifortを使用してリンクエラーが発生します。それにもかかわらず、私は同じ問題を抱える非常に小さな単純なプログラムでこれらのオプションをテストしました。ifortのlinuxボックスのコンパイラオプション
私は、ifortがインストールされている方法や、使用しているシステムの種類と関係がありますが、わかりません。これらのプログラムはオプションなしでコンパイルされたときにコンパイルされます。私の質問は、私が間違っているのは、コンパイラオプションやコンパイラオプションを使用している間にこれらのエラーが発生しないようにする方法です。ここ
は、プログラムが定期的にコンパイルされている方法です。ここ
ifort -free testrealprint.out testrealprint.f90
は、プログラムがオプションでコンパイルされている方法です。ここ
ifort -free -O2 -stand f03 -check all -traceback -warn all -fstack-protector - assume protect_parens -implicitnone testrealprint.out testrealprint.f90
は、私がテストするために使用しています非常に簡単なコードですコンパイラオプション:
program main
implicit none
real, dimension(1:3) :: adremvect
integer :: j
character (LEN = 7) :: adremchar, adremcharadj,adremcharadjtrm, adremcharnew
adremvect = (/ 2.0, 1.3, 1.0 /)
do j = 1, 3
write(adremchar, '(f5.1)') adremvect(j)
adremcharadj = adjustl(adremchar)
adremcharadjtrm = trim(adremcharadj)
adremcharnew = adremchar(4:)
print *, adremvect(j), adremcharadj, adremcharadjtrm, adremcharnew
end do
ここでは、私が使用するときに受け取るエラーメッセージの一部ですコンパイラオプション:
testrealprint.out: In function `_start':
(.text+0x0): multiple definition of `_start'
/usr/lib/gcc/x86_64-linux-gnu/4.4.3/../../../../lib64/crt1.o:(.text+0x0): first defined here
testrealprint.out: In function `_fini':
(.fini+0x0): multiple definition of `_fini'
/usr/lib/gcc/x86_64-linux-gnu/4.4.3/../../../../lib64/crti.o:(.fini+0x0): first defined here
testrealprint.out:(.rodata+0x0): multiple definition of `_IO_stdin_used'
/usr/lib/gcc/x86_64-linux-gnu/4.4.3/../../../../lib64/crt1.o: (.rodata.cst4+0x0): first defined here
testrealprint.out: In function `__data_start':
(.data+0x0): multiple definition of `__data_start'
ld: error in testrealprint.out(.eh_frame); no .eh_frame_hdr table will be created.
最終実行ファイル名を 'testrealprint.out '? – talonmies
はい、私はそうしようとしています。 –