error LNK2019: 无法解析的外部符号 error LNK1120: 9 个无法解析的外部命令

sinat_15033673 2016-03-14 10:56:37
#include <string>
#include <iostream>
#include <fstream>
#include <boost/program_options.hpp>
#include "inc/workspace.h"
#include "inc/network.h"

using namespace std;
using namespace DSSRExpression;

const string g_copyright = "Copyright (c) 2014 Yao(21741121@qq.com), Heqibo. All rights reserved.";
const string g_version = "Build expression of the Distribution System Security Region Version 1.0.0609"; // Major.Minor.Date

int main(int ac, char* av[])
{
try
{
string input_directory;
string output_directory;

namespace po = boost::program_options;

// 基本参数
po::options_description generic_options("Usage,\nGeneric options");
generic_options.add_options()
("help,h", "print help message")
("input,i", po::value<string>(&input_directory)->default_value("IN"), "directory of input files")
("output,o", po::value<string>(&output_directory)->default_value("OUT"), "directory for output files")
("debug,d", "output debug file to output directory")
;

// 读取文件参数
string work_space_file;
po::options_description config_options("Config options");
config_options.add_options()
("config-file", po::value<string>(&work_space_file), "config file with generic options")
;

po::positional_options_description p;
p.add("config-file", -1);

// 解析命令行参数
po::options_description cmd_options = generic_options.add(config_options);
po::variables_map vm;
po::store(po::command_line_parser(ac, av).options(cmd_options).positional(p).style(po::command_line_style::default_style | po::command_line_style::case_insensitive | po::command_line_style::allow_slash_for_short).run(), vm);
//po::store(po::parse_command_line(ac, av, desc, po::command_line_style::default_style | po::command_line_style::case_insensitive | po::command_line_style::allow_slash_for_short), vm);
po::notify(vm);

if (!work_space_file.empty())
{
// 存在workspace文件时,以此为准
// 解析workspace参数
ifstream ifs(work_space_file);

vm.clear();
po::store(po::parse_config_file(ifs, generic_options), vm);
po::notify(vm);
}

cout << g_version << "\n" << g_copyright << "\n\n";
if (vm.count("help") > 0|| vm.empty())
{
cout << cmd_options << "\n";
return EXIT_SUCCESS;
}


if (!input_directory.empty() && !output_directory.empty())
{
// 建立工作空间,读取参数
work_space ws;
ws.set_directory(input_directory, output_directory);
ws.is_output_debugfile = vm.count("debug") > 0;

// 读取输入文件,生成网络
network* p_nw = new network();
ws.build_network(p_nw);

// 生成表达式
p_nw->compile_expression();

// 根据表达式计算结果
p_nw->calculate_expression_value();

// 输出结果
ws.output(p_nw);

delete p_nw;
p_nw = nullptr;

return EXIT_SUCCESS;
}
}
catch(exception& e)
{
cerr << "Oops! " << e.what() << "\n";
return EXIT_FAILURE;
}
catch(...)
{
cerr << "Exception of unknown type!\n";
return EXIT_FAILURE;
}

return EXIT_FAILURE;
}

警告 1 warning MSB8028: The intermediate directory (.\Debug\) contains files shared from another project (expression.vcxproj). This can lead to incorrect clean and rebuild behavior. C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\V120\Microsoft.CppBuild.targets 381 5 main
错误 2 error LNK2019: 无法解析的外部符号 "public: __thiscall DSSRExpression::network::network(void)" (??0network@DSSRExpression@@QAE@XZ),该符号在函数 _main 中被引用 G:\DSSRExpression_20140619不含NULL版都转带不过采取分开转带方式\DSSRExpression_20140619不含NULL版都转带不过采取分开转带方式\src\main.obj main
错误 3 error LNK2019: 无法解析的外部符号 "public: __thiscall DSSRExpression::network::~network(void)" (??1network@DSSRExpression@@QAE@XZ),该符号在函数 "public: void * __thiscall DSSRExpression::network::`scalar deleting destructor'(unsigned int)" (??_Gnetwork@DSSRExpression@@QAEPAXI@Z) 中被引用 G:\DSSRExpression_20140619不含NULL版都转带不过采取分开转带方式\DSSRExpression_20140619不含NULL版都转带不过采取分开转带方式\src\main.obj main
错误 4 error LNK2019: 无法解析的外部符号 "public: void __thiscall DSSRExpression::network::compile_expression(void)" (?compile_expression@network@DSSRExpression@@QAEXXZ),该符号在函数 _main 中被引用 G:\DSSRExpression_20140619不含NULL版都转带不过采取分开转带方式\DSSRExpression_20140619不含NULL版都转带不过采取分开转带方式\src\main.obj main
错误 5 error LNK2019: 无法解析的外部符号 "public: void __thiscall DSSRExpression::network::calculate_expression_value(void)" (?calculate_expression_value@network@DSSRExpression@@QAEXXZ),该符号在函数 _main 中被引用 G:\DSSRExpression_20140619不含NULL版都转带不过采取分开转带方式\DSSRExpression_20140619不含NULL版都转带不过采取分开转带方式\src\main.obj main
错误 6 error LNK2019: 无法解析的外部符号 "public: __thiscall DSSRExpression::work_space::work_space(void)" (??0work_space@DSSRExpression@@QAE@XZ),该符号在函数 _main 中被引用 G:\DSSRExpression_20140619不含NULL版都转带不过采取分开转带方式\DSSRExpression_20140619不含NULL版都转带不过采取分开转带方式\src\main.obj main
错误 7 error LNK2019: 无法解析的外部符号 "public: __thiscall DSSRExpression::work_space::~work_space(void)" (??1work_space@DSSRExpression@@QAE@XZ),该符号在函数 _main 中被引用 G:\DSSRExpression_20140619不含NULL版都转带不过采取分开转带方式\DSSRExpression_20140619不含NULL版都转带不过采取分开转带方式\src\main.obj main
错误 8 error LNK2019: 无法解析的外部符号 "public: void __thiscall DSSRExpression::work_space::set_directory(class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > const &,class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > const &)" (?set_directory@work_space@DSSRExpression@@QAEXABV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@0@Z),该符号在函数 _main 中被引用 G:\DSSRExpression_20140619不含NULL版都转带不过采取分开转带方式\DSSRExpression_20140619不含NULL版都转带不过采取分开转带方式\src\main.obj main
错误 9 error LNK2019: 无法解析的外部符号 "public: void __thiscall DSSRExpression::work_space::build_network(class DSSRExpression::network *)" (?build_network@work_space@DSSRExpression@@QAEXPAVnetwork@2@@Z),该符号在函数 _main 中被引用 G:\DSSRExpression_20140619不含NULL版都转带不过采取分开转带方式\DSSRExpression_20140619不含NULL版都转带不过采取分开转带方式\src\main.obj main
错误 10 error LNK2019: 无法解析的外部符号 "public: void __thiscall DSSRExpression::work_space::output(class DSSRExpression::network *)" (?output@work_space@DSSRExpression@@QAEXPAVnetwork@2@@Z),该符号在函数 _main 中被引用 G:\DSSRExpression_20140619不含NULL版都转带不过采取分开转带方式\DSSRExpression_20140619不含NULL版都转带不过采取分开转带方式\src\main.obj main
错误 11 error LNK1120: 9 个无法解析的外部命令 G:\DSSRExpression_20140619不含NULL版都转带不过采取分开转带方式\DSSRExpression_20140619不含NULL版都转带不过采取分开转带方式\src\Debug\main.exe 1 1 main

本人新手求解答
...全文
359 3 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
nry19871012 2016-03-14
  • 打赏
  • 举报
回复
你只引入了.h文件,没有引入对应的.lib文件,或者是.cpp文件没增加到工程。 1.可以在工程属性中引入.lib。 2.可以动态引入.lib。
paschen 版主 2016-03-14
  • 打赏
  • 举报
回复
没有包含库文件,链接时找不到函数的实现
赵4老师 2016-03-14
  • 打赏
  • 举报
回复
项目、属性、链接器、常规、附加库目录:填写附加依赖库所在目录 分号间隔多项 项目、属性、链接器、输入、附加依赖项:填写附加依赖库的名字.lib 空格或分号间隔多项

65,184

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧