Bagaimana Memautkan Fortran dan Binari C Menggunakan GCC: Panduan untuk Menyelesaikan Ralat Rujukan Tidak Ditakrifkan?

Barbara Streisand
Lepaskan: 2024-10-27 03:49:29
asal
760 orang telah melayarinya

How to Link Fortran and C   Binaries Using GCC: A Guide to Resolving Undefined Reference Errors?

Memautkan Fortran dan Binari C Menggunakan GCC

Memautkan projek yang menggunakan kedua-dua kod Fortran dan C boleh mencabar kerana ketidakserasian antara yang berkaitan perpustakaan. Apabila cuba menyusun dan memautkan projek tersebut menggunakan g atau gfortran, ralat rujukan yang tidak ditentukan sering berlaku.

Sebagai contoh, pertimbangkan kod berikut:

<code class="fortran">subroutine print_hi() bind(C)
  implicit none
  write(*,*) "Hello from Fortran."
end subroutine print_hi</code>
Salin selepas log masuk
<code class="cpp">#include <iostream>

extern "C" void print_hi(void);

using namespace std;

int main() {
  print_hi();
  cout << "Hello from C++" << endl;
  return 0;
}</code>
Salin selepas log masuk

Menyusun fail ini dengan g atau gfortran secara berasingan menghasilkan fail objek, tetapi memautkannya bersama-sama menggunakan g menghasilkan rujukan yang tidak ditentukan kepada perpustakaan Fortran. Begitu juga, penggunaan gfortran menghasilkan rujukan yang tidak ditentukan kepada perpustakaan C.

Untuk menyelesaikan isu ini, adalah perlu untuk memautkan dalam perpustakaan yang sesuai semasa peringkat pemautan. Untuk g , ini boleh dicapai dengan menambahkan bendera -lgfortran pada arahan pautan:

g++ main.o print_hi.o -o main -lgfortran
Salin selepas log masuk

Bendera ini akan dipautkan dalam perpustakaan Fortran yang diperlukan. Sebagai alternatif, gfortran boleh digunakan dengan bendera -lstdc untuk dipautkan dalam perpustakaan C yang diperlukan:

gfortran main.o print_hi.o -o main -lstdc++
Salin selepas log masuk

Dengan menentukan bendera pemautan yang sesuai, pengaturcara boleh berjaya memautkan projek yang menggabungkan kod Fortran dan C, membenarkan mereka untuk memanfaatkan keupayaan kedua-dua bahasa dalam aplikasinya.

Atas ialah kandungan terperinci Bagaimana Memautkan Fortran dan Binari C Menggunakan GCC: Panduan untuk Menyelesaikan Ralat Rujukan Tidak Ditakrifkan?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!