C++如何在VS 2015中设置文件之间的链接
C++. How do i setup linking between files in VS 2015
我正在尝试执行一个程序,在该程序中,我输入存储在一个对象中的3个值和从其他2个值生成的第四个值,并将该对象存储到一个向量中。
问题是我从generateSignature()
函数中得到了一个错误。经过大量的谷歌搜索,我确实发现了一些东西,你需要将文件链接在一起,以便它们正确编译。但这就是我所发现的,我似乎找不到任何关于如何将文件链接在一起的帮助,所以我请求一些关于如何在Visual Studio 2015中链接文件的帮助。
我得到的错误是:
LNK2019 unresolved external symbol "class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > __cdecl generateSignature(class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >,class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >,class std::vector<struct Data,class std::allocator<struct Data> > &)" (?generateSignature@@YA?AV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V12@0AAV?$vector@UData@@V?$allocator@UData@@@std@@@2@@Z) referenced in function _main ProjektKurs C:UsersFredrikdocumentsvisual studio 2015ProjectsProjektKursProjektKursProjektKurs.obj
Project.cpp
:
#include "stdafx.h"
#include <iostream>
#include <vector>
#include <string>
#include <cstdlib>
#include "constants.h"
using namespace std;
int main()
{
vector<Data> dataVector;
struct Data newdata;
newdata.fname = "testfname";
newdata.lname = "testlname";
//add signature
newdata.signature = generateSignature("testfname","testlname",dataVector);
newdata.height = 1.85;
dataVector.push_back(newdata);
for (int i = 0; i < dataVector.size();i++) {
cout << dataVector.at(i).fname << " " << dataVector.at(i).lname + " " + dataVector.at(i).signature << " " << dataVector.at(i).height << endl;
}
}
constants.h
:
#pragma once
#ifndef CONSTANTS_H
#define CONSTANTS_H
#include <string>
#include <vector>
using namespace std;
struct Data {
string fname;
string lname;
string signature;
double height;
};
string generateSignature(string fname, string lname, vector<Data>& data);
#endif
constants.cpp
:
#include "stdafx.h"
#include "constants.h"
#include <iostream>
#include <string>
#include <vector>
using namespace std;
string generateSignature(string fname, string lname, vector<Data>& data) {
string signature+=fname;
signature+="test123";
//some random code for the vector
return signature;
}
相关文章:
- 如何在C/C++中用FD_set Unix设置套接字文件描述符
- 在C++中设置基于操作系统的文件路径
- 如何将 2 个类分成单独的 .h 文件并正确设置它们
- 如何将多种语言设置放在单个 .clang 格式文件中
- 检测到 Conan 配置文件设置与 CMake 之间的编译器版本不匹配
- 如何在运行时对程序创建的.sys文件设置文件版本
- 将 TXT 文件设置为输出和和输入
- 使用 API 而不是全局配置文件设置 OSM 配置选项
- 文件设置正确,但eof()和peek()意外地从新流返回了错误的值
- 在 C++ 中为文件夹中的所有文件设置权限
- 如何使用CMakeLists.txt为我的可执行文件设置bash中的环境变量
- 对于Android Studio NDK Gradle,如何为不同文件设置不同的CFLAG
- 使用文本文件设置交集C++
- 在多个源文件/头文件中使用c++类时的头文件设置
- 为ofstream创建的文件设置默认位置
- 如何在linux上使用c++为特定文件设置文件属性(1644)
- 仅为c++头文件设置vim文件类型脚本
- 通过.rc文件设置dll属性:Windows 7显示哪些属性
- 如何为不同操作系统的可执行文件设置目录
- 如何通过.props文件设置调试符号路径