Eclipseで完全にホストされ、C ++で起動し、Adaを呼び出すプログラムを作成しようとしています。GNATBenchをロードしましたが、Adaプログラムを問題なく実行できます。私ができないことは、C++プロジェクトにAdaプロジェクトを呼び出させることです。
探し回った後、makeファイルを使用して以下のコードを見つけて実行しました。
http://www.pegasoft.ca/resources/boblap/book.html
また、自分の目標が達成されたことを示す投稿を見つけました。
EclipseのC++でEclipseのAdaを呼び出すには、他に何を含める必要がありますか?
MAKE FILEの使用:
$ c++ -c test.cc
$ gnatgcc -c test_subr
$ gnatbind -n test_subr
$ gnatgcc -c b~test_subr
$ gnatlink -o main test.o test_subr.ali --link=c++
$ ./main
CPPコード:
//main.cc
#include extern "C" void adainit(void);
#include extern "C" void adafinal(void);
#include extern "C" void ada_subroutine(void);
int main(int argc, char **argv)
{
puts("C++ main");
adainit();
ada_subroutine();
adafinal();
puts("C++ done");
return 0;
}
エイダコード:
package Test_Subr is
procedure Ada_Subroutine;
pragma export(CPP, Ada_Subroutine);
end Test_Subr;
with Ada.Text_IO;
use Ada.Text_IO;
package body Test_Subr is
procedure Ada_Subroutine is
begin
put("IN ADA");
end Ada_Subroutine;
end Test_Subr;