请帮我解决gcc编译器命令
gcc -c -ID:\ pjtName \ lib -c -fprofile-arcs -ftest-coverage D:\ pjtName \ source \ tmp.ada
我正在尝试用覆盖率编译tmp.ada。 adb和ads文件位于D:\ pjtName \ source文件夹中。我的lib文件位于D:\ pjtName \ lib文件夹中。
问题是gcc没有找到tmp.ads文件和D:\ pjtName \ lib文件夹中的库文件。它显示文件未找到错误
执行此命令后,我需要为tmp.ada文件运行gcov命令
答案 0 :(得分:2)
GNAT的构建过程很复杂。 gcc
实际上是一个太低级别的工具,无法轻松使用;相反,使用gnatmake
和GNAT项目文件。
您已标记 gnat-gps ,因此我假设您确实拥有GPS。如果是这样,那么打开GPS时,最好的选择是选择使用向导创建新项目并从那里继续。如果您遇到困难,请使用GPS附带的帮助或返回此处。
要使用GPS获取覆盖率信息,请转到编辑 / 编辑项目属性和
-ftest-coverage
和-fprofile-arcs
; -fprofile-generate
(否则会出现链接时错误。)顺便提一句,你提到了一个文件tmp.ada
;最好坚持.ads
用于规范,.adb
用于身体。 GNAT尽力而为,但如果您的其他代码包含with Tmp;
,GNAT会查找tmp.ads
。你可以alter this behaviour,但除非你出于其他原因,否则为什么要费心呢!
答案 1 :(得分:0)
如上所述,不要使用gcc。
我通常使用gnat compile filename.adb
,然后使用gnat bind filename.ali
,然后使用gnat link filename.ali -Lexternaldirectory -lexternallib