我不知道为什么我无法链接这个程序。首先,这是我的头文件,gcd.h:
#ifndef GCD_H
#define GCD_H
/**
* Calculate the greatest common divisor of two integers.
* Note: gcd(0,0) will return 0 and print an error message.
* @param a the first integer
* @param b the second integer
* @return the greatest common divisor of a and b
*/
long gcd(long a, long b);
#endif
这是我的gcd.cpp文件:
#include "gcd.h"
#include <iostream>
using namespace std;
long gcd(long a, long b) {
// if a and b are both zero, print an error and return 0
if ( (a==0) && (b==0) ) {
cerr << "WARNING: gcd called with both arguments equal to zero." << endl;
return 0;
}
// Make sure a and b are both nonnegative
if (a<0) {
a = -a;
}
if (b<0) {
b = -b;
}
// if a is zero, the answer is b
if (a==0) {
return b;
}
// otherwise, we check all the possibilities from 1 to a
long d; // d will hold the answer
for (long t=1; t<=a; t++) {
if ( (a%t==0) && (b&t==0) ) {
d = t;
}
}
return d;
}
主要问题是当我编译时,它返回错误
C:/ MinGW的/ bin中/../ LIB / GCC /的mingw32 / 4.5.2 /../../../ libmingw32.a(main.o),此:main.c中:(文本+ 0xd2。 ): 未定义引用`WinMain @ 16'colle2:ld返回1退出 状态
我不明白这意味着什么。
请帮帮忙?
好的,实际上有人可以修改我的代码以便它正常运行吗?这是最好的选择,因为那时我真的明白我做错了什么。
答案 0 :(得分:5)
你的main
函数(程序的入口点)在哪里?
答案 1 :(得分:0)
这不是一个程序,它只是一个功能。
它可以独立编译,但不能链接到可执行文件,因为它没有入口点。链接器抱怨缺少入口点(根据编译器的启动代码所期望的名称)。
答案 2 :(得分:0)
您是如何编译代码的?它应该是这样的:
g++ gcd.cpp -o gcd
不要#include <windows.h>
或将-mwindows
添加到您的命令中。