只需尝试构建从Boost教程复制和粘贴的代码。 (见下文)
我有头文件,但还没有构建库。
问题是我遇到两个错误:
Error 1 error LNK1104: cannot open file 'libboost_system-vc100-mt-gd-1_53.lib' \\selafap01\homedrives\mgibson\My Documents\Visual Studio 2010\Projects\C++ Boost Test\C++ Boost Test\LINK C++ Boost Test
2 IntelliSense: #error directive: "Incompatible build options" c:\boost\config\auto_link.hpp 111 4
无论我做什么,似乎都想要一个.lib文件,我真的不知道该怎么做。
#include <boost/asio.hpp>
class SimpleSerial
{
public:
/**
* Constructor.
* \param port device name, example "/dev/ttyUSB0" or "COM4"
* \param baud_rate communication speed, example 9600 or 115200
* \throws boost::system::system_error if cannot open the
* serial device
*/
SimpleSerial(std::string port, unsigned int baud_rate)
: io(), serial(io,port)
{
serial.set_option(boost::asio::serial_port_base::baud_rate(baud_rate));
}
/**
* Write a string to the serial device.
* \param s string to write
* \throws boost::system::system_error on failure
*/
void writeString(std::string s)
{
boost::asio::write(serial,boost::asio::buffer(s.c_str(),s.size()));
}
/**
* Blocks until a line is received from the serial device.
* Eventual '\n' or '\r\n' characters at the end of the string are removed.
* \return a string containing the received line
* \throws boost::system::system_error on failure
*/
std::string readLine()
{
//Reading data char by char, code is optimized for simplicity, not speed
using namespace boost;
char c;
std::string result;
for(;;)
{
asio::read(serial,asio::buffer(&c,1));
switch(c)
{
case '\r':
break;
case '\n':
return result;
default:
result+=c;
}
}
}
private:
boost::asio::io_service io;
boost::asio::serial_port serial;
};
关于如何获取该lib文件的任何方向,因为它实际上似乎不在任何地方的Boost头文件目录中,计算机搜索也找不到任何东西..将非常感激。
干杯
编辑1:
能够生成必要的.lib文件,但是在Visual Studio命令提示符下导航boost目录并运行bootstrap.bat,生成b2.exe,我运行了它,并且生成了stage / lib目录二进制文件。
但是,现在我收到另一个错误..“错误LNK1561:必须定义入口点”
我想错误的圈子继续:)
编辑2:引用的入口点是main()。忘了主!哦,好吧,加入一个主要的,一切都很好!
答案 0 :(得分:3)
对于第一个错误:在VStudio中右键单击项目 - &gt;属性 - &gt;链接器 - &gt;通用 - &gt;其他库目录“boost \ stage \ lib”似乎你试图链接错误的文件夹。还要检查文件
libboost_system-vc100-mt-gd-1_53.lib
位于boost \ stage \ lib文件夹中。
答案 1 :(得分:0)
如果您在构建中执行静态链接,则需要安装boost并显示库。安装后,您将能够在VS项目配置中找到并指定库的路径。
答案 2 :(得分:0)
就我而言,“发布”模式运行良好,但是“调试”模式显示此错误...
尝试一下: 在VStudio属性-> C / C ++->代码常规->运行时库中右键单击项目:将/ MT更改为/ MTD。