gcc 编译器 lib 文件未找到错误
Posted
技术标签:
【中文标题】gcc 编译器 lib 文件未找到错误【英文标题】:gcc compiler lib file not found error 【发布时间】:2014-03-26 09:13:30 【问题描述】:请帮助我了解 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 没有在 D:\pjtName\lib 文件夹中找到 tmp.ads 文件和库文件。它显示文件未找到错误
在这个命令之后,我需要为 tmp.ada 文件运行 gcov 命令
【问题讨论】:
【参考方案1】:GNAT 的构建过程很复杂。 gcc
实在是太低级了,不好用;而是使用 gnatmake
和 GNAT 项目文件。
你已经标记了 gnat-gps,所以我假设你实际上有 GPS。如果是这样,您最好的选择是在打开 GPS 时选择使用向导创建新项目,然后从那里继续。如果遇到困难,请使用 GPS 随附的帮助或返回此处。
要使用 GPS 获取覆盖信息,请转到 Edit / Edit Project Properties 和
在Ada选项卡中,选择代码覆盖率和Instrument arcs,其中包括-ftest-coverage
和-fprofile-arcs
;
在Ada Linker 选项卡中,选择代码覆盖率,其中包括-fprofile-generate
(否则会出现链接时间错误)。
对了,你提到了一个文件tmp.ada
;对于规格,最好坚持使用.ads
,对于车身,最好坚持使用.adb
。 GNAT 会尽力而为,但如果您的其他代码包含with Tmp;
,GNAT 将寻找tmp.ads
。你可以alter this behaviour,但除非你有其他原因,否则何必打扰!
【讨论】:
感谢 Simon Wright,将 gprbuild 工具与我的“pjt.gpr”文件一起使用时,GPS 工具显示“无法创建 gcno 文件”错误。即使我的 gpr 文件将 -fprofile-arcs -ftest-coverage 作为默认开关,它也不会生成覆盖文件。所以,我选择了 gcc 工具来为我的 ada 源文件创建 .gcda 和 .gcno 文件。 添加了一些关于获取 GPS 覆盖的内容。 我不明白为什么会说“无法生成gcno文件”!对我来说,没有-fprofile-generate
,程序无法链接。【参考方案2】:
如上所述,不要使用 gcc。
我通常使用gnat compile filename.adb
,然后使用gnat bind filename.ali
,然后使用gnat link filename.ali -Lexternaldirectory -lexternallib
【讨论】:
以上是关于gcc 编译器 lib 文件未找到错误的主要内容,如果未能解决你的问题,请参考以下文章