0

我有一个测试文件包含的自定义库(和相应的 cpp 文件)。当我尝试在测试文件中调用该函数时,它给了我错误“未定义对 <函数名称> 的引用”。我在将东西放入库文件方面不是很有经验,因此不胜感激。

输入.h

#ifndef LOC_H
#define LOC_H
#include<vector>
struct loc{
    int room, row, col;
    char c;
    bool stacked;
    //loc *north, *east, *south, *west;
};
#endif
void Input(std::vector<std::vector<std::vector<loc> > > &b, loc & start);

输入.cpp

#include<iostream>
#include<cstdlib>
#include<unistd.h>
#include<getopt.h>
#include "input.h"

using namespace std;

void Input(vector<vector<vector<loc> > > &b, loc & start) {
    //Do stuff
}

测试.cpp

#include<iostream>
#include "input.h"
#include<vector>

using namespace std;

int main(int argc, char* argv[]) {
    vector<vector<vector<loc> > > building;
    loc start = {0, 0, 0, '.', false};
    Input(building, start);
}
4

1 回答 1

0

根本不涉及图书馆。您只需在链接时链接所有源文件的目标文件。最简单的方法是从源代码编译它:

g++ -o test test.cpp input.cpp

当您有一个较大的项目时,您可能希望单独编译,由 makefile 或脚本控制。

g++ -c test.cpp
g++ -c input.cpp
g++ -o test test.o input.o

这看起来有点笨拙,但显示了幕后所做的事情。

于 2013-02-08T07:18:48.313 回答