小编cry*_*air的帖子

如何创建ada lib.a并链接到C

我正在尝试创建一个ada库,并尝试了一些不同的东西.我尝试使用makefile编译项目并尝试从所有.o文件创建一个库这似乎不能按预期工作.然后我问adacore支持,他们指出了我在ada和c项目中使用.gpr文件的方向,以及应该创建库的ada.gpr中的文件.这几乎可以工作,但当它试图编译ada我得到未定义的引用.

我试过的:命令行:

ar rc libmy_lib.a *.o
Run Code Online (Sandbox Code Playgroud)

当我尝试阅读lib中的内容时

ld libmy_lib.a
Run Code Online (Sandbox Code Playgroud)

我得到这个错误ld:警告:找不到条目符号_start; 没有设置起始地址

项目文件:我的ada项目文件prj.gpr

project Prj is
for Source_Dirs use ("source1/", "source2", ....);
for Object_Dir use ".";

for Languages use ("Ada");
for Library_Name use "test";
for Library_Dir use "lib";
for Library_Interface use (
 --All my ada packages
        );

package Naming is
      for Spec_Suffix ("ada") use ".1.ada";
      for Body_Suffix ("ada") use ".2.ada";
      for Separate_Suffix use ".2.ada";
      for Dot_Replacement use ".";
   end Naming;

   package Compiler is
      for Default_Switches ("ada") use ("-v", "-g", "-gnato", "-gnatwa", …
Run Code Online (Sandbox Code Playgroud)

c ada gnat gnat-gps

6
推荐指数
1
解决办法
3363
查看次数

标签 统计

ada ×1

c ×1

gnat ×1

gnat-gps ×1