-1

所以,我试图让 gnatmake 给我一个我正在构建的 dll 的地图文件。

但我拒绝这样做。--create-map-file 仅用于可执行文件,它确实为此制作了一个,但我无法将它用于.dll。

我已经尝试过 -M --print-map -M save.map 但我没有得到任何结果。

想法?

4

1 回答 1

2

您可以尝试使用gnatdll. 这是一个(非常简单的)示例(没有初始化/完成代码):

生成文件

all:
    gnatmake -v demo.adb
    gnatdll -v -d demo.dll .\demo.ali -largs -Wl,-Map,demo.map

演示广告

package Demo is

   function Add (X, Y : Integer) return Integer
     with Export, Convention => C;

end Demo;

演示.adb

package body Demo is
   
   ---------
   -- Add --
   ---------
   
   function Add (X, Y : Integer) return Integer is
   begin
      return X + Y;
   end Add;

end Demo;

演示.def

LIBRARY   LIBDEMO
EXPORTS
    add

输出(构建后的目录内容)

demo.adb
demo.ads
demo.ali
demo.def
demo.dll
demo.map         <<<<<<  A .map file
demo.o
libdemo.dll.a
Makefile
于 2020-08-19T22:17:14.280 回答