我正在使用Qt Creator运行mingw C ++编译器来编译我从一个名为NBIS的机构获得的一些C源代码。 我正在尝试提取允许我解码以WSQ图像格式编码的图像的代码。
不幸的是,我收到的消息是我对某些功能有“多个定义” 这与grep搜索相矛盾,以及在每种情况下确实在单个C文件中定义的未定义函数的投诉。 我查看了包含文件,这些函数在声明中确实有extern之前的单词。 至于“多个定义”的错误消息,链接器说“首先在这里定义”,并且在每种情况下只提供一个目标文件。
所有C文件都有C扩展名。
我应该补充一点,当我看到这样的编译器outout时,我收到了奇怪的消息: Makefile.Debug:427:警告:覆盖目标'debug / huff.o'的配方 (确实,我有两个名为huff.c的文件,但在不同的目录中)
答案 0 :(得分:0)
你是否有机会在.cpp文件中包含这些.h(除了C文件)?在这种情况下,您需要用extern "C"
语句包围它们:
extern "C" {
#include "CHeader.h"
}
答案 1 :(得分:0)
我正在使用“shadow-build”,它在源文件层次结构之外创建一个目录 Qt将其从项目文件生成的makefile放入其中,放置目标文件 等等。 我删除了该目录并重新启动了Qt Build操作。 问题消失了。 看起来这是一个Qt错误。