我目前正在尝试简单地将名为main.cpp的文件与boost链接,以便执行asio(异步输入和输出)。我使用makefile将C ++代码编译成可执行的形式。但是,尽管在Mac OS X中的终端命令上使用-I修饰符,它仍然无法找到要搜索的相应目录。这是我在Main中的代码
#include <asio.hpp>
int main(){
return 1;
}
这是我正在使用的makefile命令
all:
g++ -Iboost_1_60_0/boost/ -o main main.cpp
在我的文件结构中,boost_1_60_0,main.cpp和makefile都在顶层,其中asio位于文件夹boost_1_60_0中的文件夹boost中。我对此非常困惑,任何帮助都将不胜感激!谢谢!
编辑:完整错误
1 error generated.
make: *** [all] Error 1
iMats-2:SerialC++ wfehrnstrom$ make
g++ -Iboost_1_60_0 -o main main.cpp
main.cpp:2:10: fatal error: 'asio.hpp' file not found
答案 0 :(得分:1)
您应该使用-Iboost_1_60_0
(或者更好的是,正确安装Boost以便在/usr/include/
下自动找到它),并写下#include <boost/asio.hpp>
。
内部的包含指令 Boost本身将采用这种形式,所以......
顺便说一下,这与例外无关。可能这是你见过的编译器错误。