gpt4 book ai didi

c++ - LNK2019 未解析符号

转载 作者:行者123 更新时间:2023-11-28 05:30:37 25 4
gpt4 key购买 nike

我正在努力

main.obj:-1: error: LNK2019: unresolved external symbol "public: __cdecl Book::Book(void)" (??0Book@@QEAA@XZ) referenced in function main

main.obj:-1: error: LNK2019: unresolved external symbol "public: void __cdecl Book::update(class Order)" (?update@Book@@QEAAXVOrder@@@Z) referenced in function main

据我所知,这通常是因为缺少选择器,但我看不出自己遗漏了什么。此外,没有静态变量,参数似乎是正确的,...浏览下面的问题列表无助于找出问题。

https://msdn.microsoft.com/en-us/library/799kze2z.aspx

#include <QCoreApplication>
#include <order.h>
#include <book.h>
#include <iostream>
#include <vector>

std::vector<Order> md_orders;


int main(int argc, char *argv[])
{
QCoreApplication a(argc, argv);

Order order;
order.setIsBid( true );
order.setSize( 500 );
order.setPrice( 10.00 );

double price = order.getPrice();

Book book;
book.update( order );

std::cout << price;


return a.exec();
}

书.h

#ifndef BOOK_H
#define BOOK_H
//#include <order.h>
#include <vector>

class Book
{
public:
Book();
Order getBest( double, bool );
void update( Order );
double getBestPrice( bool );
private:
std::vector<Order> _orders;
};

#endif // BOOK_H

书.cpp

#include "book.h"
#include <limits>
//#include <order.h>

#include <iostream>

int imax = std::numeric_limits<int>::max();

Book::Book()
{

}



void Book::update( Order order ) {

std::cout << order.getSize();

}

我是 cpp 的新手。我似乎对书籍类和订单类做同样的事情,它工作正常。这非常令人困惑。有什么指点吗?

因此,出于好奇,我创建了一个新项目并添加了一个类 TestA 并运行它,一切顺利。然后我以完全相同的方式创建了类 TestB,它因 TestB 的相同错误而中断,但 TestA 没有

#include <QCoreApplication>
#include "testa.h"
#include "testb.h"

int main(int argc, char *argv[])
{
QCoreApplication a(argc, argv);


TestA A;
TestB B;

return a.exec();
}

测试.h

#ifndef TESTA_H
#define TESTA_H


class TestA
{
public:
TestA();
};

#endif // TESTA_H

测试b.h

#ifndef TESTB_H
#define TESTB_H


class TestB
{
public:
TestB();
};

#endif // TESTB_H

抛出这个

main.obj:-1: error: LNK2019: unresolved external symbol "public: __cdecl TestB::TestB(void)" (??0TestB@@QEAA@XZ) referenced in function main

这就是 qt creator 的全部内容。这看起来很奇怪

最佳答案

在你的 main.cpp 中,

注意你是如何包含 book.h 的编译器不会在本地目录中查找 book.h,也无法在标准库位置找到 book 的定义。

代替 #include <book.h>使用 #include"book.h"

进一步添加。

您尚未在 book.cpp 中定义以下方法,并且您正试图从 main 函数中访问它们。你所有痛苦的原因。

Order getBest( double, bool );
double getBestPrice( bool );

关于c++ - LNK2019 未解析符号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39630754/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com