只需尝试构建从 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()。忘记主线了!哦,好吧,添加了一个主要的,一切都很好!