Rumah > pembangunan bahagian belakang > C++ > Bagaimana untuk Memautkan Fortran dan Binari C Bersama Menggunakan GCC?

Bagaimana untuk Memautkan Fortran dan Binari C Bersama Menggunakan GCC?

DDD
Lepaskan: 2024-10-26 21:31:03
asal
768 orang telah melayarinya

How to Link Fortran and C   Binaries Together Using GCC?

Memautkan Fortran dan Binari C dengan GCC

Untuk menyambungkan kod C dan Fortran menggunakan gcc, langkah tertentu mesti diikuti.

Andaikan anda mempunyai kod berikut:

// print_hi.f90
subroutine print_hi() bind(C)
  implicit none
  write(*,*) "Hello from Fortran."
end subroutine print_hi

// main.cpp
#include <iostream>
extern "C" void print_hi(void);
using namespace std;
int main() {
  print_hi();
  cout << "Hello from C++" << endl;
  return 0;
}
Salin selepas log masuk

Selepas menyusun fail objek individu menggunakan

gfortran -c print_hi.f90 -o print_hi.o
g++ -c main.cpp -o main.o
Salin selepas log masuk

Untuk memautkan binari ini bersama-sama, anda perlu memasukkan yang sesuai perpustakaan. Apabila menggunakan g , anda harus menambah perpustakaan Fortran menggunakan:

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

Ini termasuk perpustakaan yang diperlukan untuk fungsi Fortran.

Sebagai alternatif, jika anda menggunakan gfortran, anda boleh memasukkan C perpustakaan:

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

Memasukkan perpustakaan ini memastikan peleraian simbol yang betul dan membolehkan perlaksanaan lancar binari yang dipautkan.

Atas ialah kandungan terperinci Bagaimana untuk Memautkan Fortran dan Binari C Bersama Menggunakan GCC?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan