[英]Undefined reference to class from namespace in C++
我是 C++ 的新手,正在尝试通过纸面交易做一个小型量化项目。
我有一个 header 文件alpaca/client.h
如下:
#pragma once
#include <iostream>
#include <../utils/httplib.h>
#include <config.h>
using namespace std;
namespace alpaca {
class Client {
private:
alpaca::Config* config;
public:
Client();
string connect();
};
}
alpaca/client.cpp
中的实现是
#include <iostream>
#include <string>
#include <client.h>
#include <httplib.h>
using namespace std;
namespace alpaca {
Client::Client() {
config = &alpaca::Config();
};
string Client::connect() {
httplib::Client client(config->get_url(MARKET));
auto res = client.Get("/v2/account");
if (res) {
return res->body;
}
else {
return "Error in Client::get_account(): " + to_string(res->status);
}
};
}
我的main.cpp
是:
#include <iostream>
#include <string>
#include <client.h>
using namespace std;
int main()
{
alpaca::Client client = alpaca::Client();
client.connect();
return 0;
}
但是,当我尝试使用 g++ 进行编译时,我看到以下错误:
C:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/12.1.0/../../../../x86_64-w64-mingw32/bin/ld.exe: C:\Users\shubh\AppData\Local\Temp\cc765kwL.o:main.cpp:(.text+0x1ca): undefined reference to 'alpaca::Client::Client()'
任何人都可以帮助我到底缺少什么吗? 我不太确定。
我使用的g++命令是g++ -I./src/alpaca src/main.cpp
看来您忘记编译client.cpp
文件了。 错误消息是说 linker 找不到Client
class 构造函数的定义。
尝试使用g++
命令编译main.cpp
和client.cpp
,如下所示:
g++ -I./src/alpaca src/main.cpp src/alpaca/client.cpp
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.