列出 Gnat 中未使用的文件
List unused files in Gnat
我在 GNAT 中有一个项目,我想列出所有从未使用过的文件。我正在考虑使用 python 脚本来完成它,但是,是否可以使用 GNAT 轻松地做到这一点?
更新:
我找到了关于 gnatelim 的信息,但是尽管在帮助中它说有 -P 选项
usage: gnatelim [options] -main=main_unit_name {filename} [-cargs gcc_switches]
options:
--version - Display version and exit
--help - Display usage and exit
-Pproject - Use project file project. Only one such switch can be used.
好像不行,要主机(有整个项目!):
>gnatelim -Prelease.gpr
gnatelim: No main unit specified
try "gnatelim.exe --help" for more information.
我正在使用 GNAT 2015
如果您的项目没有任何主要单元,答案很简单;什么都没用。
您需要至少有一个主要单位,以便参考查看哪些单位未被使用。
在实践中,比使用 gnatelim
更简单的可能性。将 -gnatwe
(将警告视为错误)与 -gnatwa
(打开大多数警告)相结合,GNAT 会告诉您哪些 with
ed 单元不是真正需要的。
对gnatelim
的帮助比较有限,不过我试了一下,技巧好像是gnatelim
传递你主机的文件名:
gnatelim main.adb
如果您的项目比包含所有需要的源文件的单个目录更复杂,您可以传递 gnatelim
项目文件和主单元的文件名:
gnatelim -P black_examples.gpr client.adb
作为回答的后续,看来有必要转给gnatelim
- 正好是一个主要单元,取自项目文件中命名的单元
- 项目文件
例如,在项目文件中我有几个主要单位列为
for Main use ("pack-prog.ada", "driver.ada", ...);
(还有 for Executable ("pack-prog.ada") use ("prog");
等)
像您一样指定零个单位,或者指定一个以上的主要单位,我得到
$ gnatelim -Pasnip pack-prog.ada driver.ada
gnatelim: No main unit specified
try "gnatelim --help" for more information.
指定一个单位,我得到
$ gnatelim -Pasnip pack-prog.ada
---------------------------------------------------------
-- List of unused entities to be placed in gnat.adc. --
---------------------------------------------------------
pragma Eliminate (...
gnatelim
或通过 gnatelim
的诊断消息似乎不完全正确。
我在 GNAT 中有一个项目,我想列出所有从未使用过的文件。我正在考虑使用 python 脚本来完成它,但是,是否可以使用 GNAT 轻松地做到这一点?
更新:
我找到了关于 gnatelim 的信息,但是尽管在帮助中它说有 -P 选项
usage: gnatelim [options] -main=main_unit_name {filename} [-cargs gcc_switches]
options:
--version - Display version and exit
--help - Display usage and exit
-Pproject - Use project file project. Only one such switch can be used.
好像不行,要主机(有整个项目!):
>gnatelim -Prelease.gpr
gnatelim: No main unit specified
try "gnatelim.exe --help" for more information.
我正在使用 GNAT 2015
如果您的项目没有任何主要单元,答案很简单;什么都没用。
您需要至少有一个主要单位,以便参考查看哪些单位未被使用。
在实践中,比使用 gnatelim
更简单的可能性。将 -gnatwe
(将警告视为错误)与 -gnatwa
(打开大多数警告)相结合,GNAT 会告诉您哪些 with
ed 单元不是真正需要的。
对gnatelim
的帮助比较有限,不过我试了一下,技巧好像是gnatelim
传递你主机的文件名:
gnatelim main.adb
如果您的项目比包含所有需要的源文件的单个目录更复杂,您可以传递 gnatelim
项目文件和主单元的文件名:
gnatelim -P black_examples.gpr client.adb
作为gnatelim
- 正好是一个主要单元,取自项目文件中命名的单元
- 项目文件
例如,在项目文件中我有几个主要单位列为
for Main use ("pack-prog.ada", "driver.ada", ...);
(还有 for Executable ("pack-prog.ada") use ("prog");
等)
像您一样指定零个单位,或者指定一个以上的主要单位,我得到
$ gnatelim -Pasnip pack-prog.ada driver.ada
gnatelim: No main unit specified
try "gnatelim --help" for more information.
指定一个单位,我得到
$ gnatelim -Pasnip pack-prog.ada
---------------------------------------------------------
-- List of unused entities to be placed in gnat.adc. --
---------------------------------------------------------
pragma Eliminate (...
gnatelim
或通过 gnatelim
的诊断消息似乎不完全正确。