使用QTCreator中的库未定义参照
Using Library In QTCreator Undefined Reference
我正在构建自己的函数库,用来帮助我学习C++。我正在尝试一个简单的QT应用程序,当我运行该应用程序时,我会遇到一个未定义的错误。不确定我做错了什么,这可能是一件愚蠢的事情。
库文件
CC_编号.h
#ifndef CC_NUMBER_H
#define CC_NUMBER_H
#include <string>
using namespace std;
class CC_Number
{
public:
CC_Number();
virtual ~CC_Number();
int randCC(int imin=0, int imax=1);
int arraySize(int x[]);
int arraySize(double x[]);
int arraySize(float x[]);
int arraySize(string x[]);
string int_to_str(int i);
protected:
private:
};
#endif // CC_NUMBER_H
CC_编号.cpp
#include "CC_Number.h"
#include <sstream>
using namespace std;
CC_Number::CC_Number()
{
//ctor
}
CC_Number::~CC_Number()
{
//dtor
}
string CC_Number::int_to_str(int i){
stringstream ss;
ss << i;
string str = ss.str();
return str;
}
调用库的代码
动画_生日.h
#ifndef ANIMAL_BIRTHDATE_H
#define ANIMAL_BIRTHDATE_H
#include "/home/mongo/Cpp/CC_Cpp/CC_Number.h"
#include <iostream>
#include <string>
using namespace std;
class Animal_Birthdate
{
public:
Animal_Birthdate();
Animal_Birthdate(int m, int d, int y);
string getBirthdate();
private:
int intMonth;
int intDay;
int intYear;
};
#endif // ANIMAL_BIRTHDATE_H
动画_生日.cpp
#include "animal_birthdate.h"
#include "/home/mongo/Cpp/CC_Cpp/CC_Number.h"
#include <iostream>
#include <string>
using namespace std;
Animal_Birthdate::Animal_Birthdate()
:intMonth(1), intDay(1), intYear(1)
{
}
Animal_Birthdate::Animal_Birthdate(int m, int d, int y)
:intMonth(m), intDay(d), intYear(y)
{
}
string Animal_Birthdate::getBirthdate()
{
CC_Number c;
string bd = c.int_to_str(intMonth);
return bd;
}
我收到的错误/home/mongo/Cpp/CC_Herd_Manager/animal_birthdate.o:-1:在函数`animal_birthdate::getBirthdate'((中:
/home/mongo/Cpp/CC_Herd_Manager/animal_birthdate.Cpp:-1:错误:未定义对`CC_Number::CC_Number(('的引用
/home/mongo/Cpp/CC_Herd_Manager/animal_birthdate.Cpp:-1:错误:未定义对`CC_Number::int_to_str(int('的引用
CC_Cpp.pro 的内容
#-------------------------------------------------
#
# Project created by QtCreator 2013-05-31T10:42:21
#
#-------------------------------------------------
QT -= core gui
TARGET = CC_Cpp
TEMPLATE = lib
DEFINES += CC_CPP_LIBRARY
SOURCES +=
CC_Number.cpp
CC_File.cpp
HEADERS +=
cc_cpp_global.h
CC_Number.h
CC_File.h
unix:!symbian {
maemo5 {
target.path = /opt/usr/lib
} else {
target.path = /usr/lib
}
INSTALLS += target
}
看起来您所做的工作并不需要"库"。我建议简单地将多个翻译单元链接到一个简单的应用程序中作为起点。即移除TEMPLATE = lib
,您将被设置。
如果您想学习如何使用qmake
创建库,请阅读有关TEMPLATE = subdirs
的信息,并阅读qmake的文档,其中包含有关如何生成库、静态库和动态库之间的区别、如何链接到它们等的所有信息。
我在尝试使用该库的项目的模板文件中添加了以下内容,并成功了。
SOURCES += main.cpp
mainwindow.cpp
animal.cpp
email.cpp
owner.cpp
phone.cpp
/home/mongo/Cpp/CC_Cpp/CC_Number.cpp
/home/mongo/Cpp/CC_Cpp/CC_Date.cpp
/home/mongo/Cpp/CC_Cpp/CC_TimeStamp.cpp
HEADERS += mainwindow.h
animal.h
email.h
owner.h
phone.h
/home/mongo/Cpp/CC_Cpp/CC_Number.h
/home/mongo/Cpp/CC_Cpp/CC_Date.h
/home/mongo/Cpp/CC_Cpp/CC_TimeStamp.h
相关文章:
- 编译C++时未定义的引用
- vscode g++链路故障:体系结构x86_64的未定义符号
- 如何修复此错误:未定义对"距离(浮点数,浮点数,浮点数,浮点数,浮点数)"的引用
- 我的项目不会像"undefined reference to `grpc::g_core_codegen_interface'"那样使用未定义的引用错误进行编译
- 不知道某个东西是否被忽略会引入未定义的行为吗
- 对C宏的未定义引用,但在定义它时会出现重新定义错误
- 未定义的引用在哪里
- 编译时的 CImg 库返回对"__imp_SetDIBitsToDevice"的未定义引用
- 对Py_Initialize()的未定义引用
- c++11评估顺序(未定义的行为)
- 使用mysql c++连接器的未定义引用
- 从python调用openMP共享库时,未定义opnMP函数
- 在 Mac 上使用 CMAKE 将 FFTW 和 FFTWPP 链接到项目中时未定义的符号
- 在QtCreator中链接dll的未定义引用错误
- QtCreator中带有mingw的共享库给出了未定义的引用错误
- 使用QtCreator为android构建boost_ALL_NO_LIB时,未定义对boost::system::sy
- c++ QTCreator 5.0 SQLite3_Open未定义引用
- 使用QTCreator中的库未定义参照
- 为什么我收到未定义的引用错误在QtCreator
- SDL2在QtCreator中未定义引用sdl_Main