我有一个奇怪的问题。我有这些文件:
lib.h:
#ifndef _LIB_H_
#define _LIB_H_
double fun(int a);
#endif
lib.c:
#include "lib.h"
#include <stdio.h>
#if !defined(MY_FUN) && ((defined(__MINGW32__) || defined(__MINGW64__)) && defined(_X86_))
#define MY_FUN
double fun(int a)
{
printf("%d\n", a);
}
#endif
主.cpp:
#include "lib.h"
int main(int argc, char **argv)
{
fun(2);
return 0;
}
当我在 Windows 上运行此类代码时,出现错误:undefined reference to fun
. 在 Linux(Ubuntu)上没问题,编译没有错误。当我将所有内容都放在一个文件中(在 Windows 上)时,它也可以。但我需要将它放在单独的文件中。如何使它正确?在 Windows 上,我使用带有 Code::Blocks 的 MinGW。