对ISPRIME(INT)的未定义引用,但已定义
Undefined reference to isPrime(int) but it is defined
我正在从事一个实用分配,该分配要求我们使用外部功能来确定输入的整数是否是质量数字。我创建了标题文件,外部功能文件和主文件,但是当我使用
编译时g -o main main.cpp extfunc.cpp
但是我得到了错误:
/TMP/cca073or.o:在功能'main'中:
main.cpp :(。text 0x42(:对" isprime(int('
的未定义引用Collect2:错误:LD返回1退出状态
以下是我的CPP和标题课:
1(Extfunc.h
bool isPrime(int num);
2(Extfunc.cpp
# include "extFunc.h"
bool isPrime(int num) {
int i;
bool numPrime;
//Determine if number is prime
if (num <= 0) {
numPrime = false;
}
if (num = 1) {
numPrime = false;
}
if (num = 2) {
numPrime = true;
}
if (num = 3) {
numPrime = true;
}
else {
numPrime = true;
for(i = 2; i < num; i++) {
if ((num%i) == 0){
numPrime = false;
break;
}
}
}
//Return values
if (numPrime == true) {
return true;
} else {
return false;
}
}
3(main.cpp
#include <iostream>
#include "extFunc.h"
using namespace std;
int main() {
//Variables
int uNum;
bool prime;
cout << "Enter a number: ";
cin >> uNum;
prime = isPrime(uNum);
if (prime = true) {
cout << uNum << " is prime" << endl;
}
else {
cout << uNum << " is not prime" << endl;
}
return 0;
}
我尝试了我在网站上找到的其他一些建议,包括在标头文件中使用#IFNDEF,但对我来说没有修复任何内容。我无法确定可能是问题的可能是问题,因为标题文件中的函数和功能文件相同,并且在主文件中正确调用(从我所看到的(。
感谢所有响应。我设法解决了这个问题。该大学发布了一份指南,以帮助我们今天早上完成任务,我更改了修复问题的Makefile。
这就是我为我的makefile
main: main.o extFunc.o
g++ -o main main.o extFunc.o
main.o: main.cpp extFunc.h
g++ -c main.cpp
extFunc.o: extFunc.h extFunc.cpp
g++ -c extFunc.cpp
run:
./main
clean:
rm *. main
我认为您在" ="answers" =="之间混淆例如
if (num = 1) {
[...]
}
应该是:
if (num == 1) {
[...]
}
perhapse是为了避免这种错误,使用" const"关键字是一个很好的交易。
发生错误:在Extfunc.cpp的第10、13和16行上和第16行。CPP
相关文章:
- 编译C++时未定义的引用
- 如何修复此错误:未定义对"距离(浮点数,浮点数,浮点数,浮点数,浮点数)"的引用
- 我的项目不会像"undefined reference to `grpc::g_core_codegen_interface'"那样使用未定义的引用错误进行编译
- 对C宏的未定义引用,但在定义它时会出现重新定义错误
- 未定义的引用在哪里
- 编译时的 CImg 库返回对"__imp_SetDIBitsToDevice"的未定义引用
- 对Py_Initialize()的未定义引用
- 使用mysql c++连接器的未定义引用
- 未定义的引用 .. 使用 OpenCV 编译 C++ 代码时,从命令行
- 对 Scalar ::Scalar() 的未定义引用
- Xcode 语义问题引用或以前定义的代码
- 已定义函数时出现 G++ "未定义的引用"错误
- 链接 cmake 时出现未定义的引用错误
- 对复制 CTOR 和 CTOR 的未定义引用
- 将引用定义为函数调用 - 有什么好处?
- 为什么不将RVALUE引用定义为RVALUE表达
- 是右值引用定义行为的直接实例化
- 难以理解引用定义
- C++11通过引用定义函数类型捕获
- 可以引用定义在结构体内部的友元操作符吗?