如何在Eclipse IDE下运行混合C ++ / Fortran项目?

时间:2014-02-10 21:03:14

标签: c++ eclipse fortran photran

我正在尝试编译由英特尔编译器2013在 Eclipse IDE 下提供的混合编程语言(C ++ / Fortran)示例项目。我可以在Visual Studio IDE(在Windows操作系统上)成功运行该项目,但我还没有想出如何在Linux下运行Eclipse下的相同项目。在Eclipse IDE中将Fortran链接到C ++项目的配置是困扰我的主要问题。

有谁能告诉我如何链接这两个项目?谢谢。输出应该很简单“测试...... 123。”


源代码如下: (1)主程序,fmain.f90

PROGRAM fmain
USE, INTRINSIC :: ISO_C_BINDING
IMPLICIT NONE
INTERFACE
SUBROUTINE c_routine (int_arg, str_in, str_out, str_out_len) BIND(C)
IMPORT ! Use declarations from host  
INTEGER(C_INT), VALUE,INTENT(IN) :: int_arg
    CHARACTER(KIND=C_CHAR), DIMENSION(*), INTENT(IN) :: str_in
    CHARACTER(KIND=C_CHAR), DIMENSION(*), INTENT(OUT) :: str_out  
    INTEGER(C_INT), VALUE, INTENT(IN) :: str_out_len
END SUBROUTINE c_routine
END INTERFACE
CHARACTER(80) OUTPUT_TEXT
INTEGER IN_ARG, OUTPUT_LEN
CHARACTER(80) INPUT_TEXT
INPUT_TEXT = "Testing..."//C_NULL_CHAR 
IN_ARG = 123
CALL c_routine (IN_ARG, INPUT_TEXT, OUTPUT_TEXT, LEN(OUTPUT_TEXT))
OUTPUT_LEN = INDEX(OUTPUT_TEXT," ")
IF (OUTPUT_LEN == 0) OUTPUT_LEN = len(OUTPUT_TEXT)
WRITE (*,*) OUTPUT_TEXT(1:OUTPUT_LEN)
END

(2)csub.cpp

#include <stdio.h>
extern "C" void c_routine (
    int int_arg, // integer to convert
    char* input_text, // text to prepend to converted integer
    char* output_text, // output buffer
    int output_text_len // length of output buffer
    )

{
sprintf_s(output_text,output_text_len,"%s%i ",input_text,int_arg);
}

0 个答案:

没有答案