我认为我已正确安装,所以我尝试使用测试“first.cpp”找到here:
#include<iostream>
#include<boost/any.hpp>
int main()
{
boost::any a(5);
a = 7.67;
std::cout<<boost::any_cast<double>(a)<<std::endl;
}
我得到以下内容:
Jason@ITHAKA-DB44CFE1 /home/jason
$ g++ -o first first.cpp
first.cpp:2:24: boost/any.hpp: No such file or directory
first.cpp: In function `int main()':
first.cpp:6: error: `boost' has not been declared
first.cpp:6: error: `any' undeclared (first use this function)
first.cpp:6: error: (Each undeclared identifier is reported only once for each
unction it appears in.)
first.cpp:6: error: expected `;' before "a"
first.cpp:7: error: `a' undeclared (first use this function)
first.cpp:8: error: `boost' has not been declared
first.cpp:8: error: `any_cast' undeclared (first use this function)
first.cpp:8: error: expected primary-expression before "double"
first.cpp:8: error: expected `;' before "double"
first.cpp:9:2: warning: no newline at end of file
Jason@ITHAKA-DB44CFE1 /home/jason
$
我的提升库位于我的./home/Jason /
中显然有些事情发生了。此外,所有的升级库本身都使用这个“boost / ...”,所以出于某种原因:
1 - 我对Boost做错了 2 - C ++ / gcc没有“看到”我的提升
任何输入?
答案 0 :(得分:2)
您需要将-I/home/Jason/include
传递给gcc
,也可能传递-L/home/Jason/lib
,因为该库未安装在标准路径中。尝试:
g++ -I/home/Jason/include -L/home/Jason/lib -o first first.cpp
此外,一旦编译,它将无法正常运行,因为库不再在标准路径中。要运行它,您需要将/home/Jason/lib
添加到环境变量LD_LIBRARY_PATH
。
编辑:正如Tony D指出的那样,你可以将CPLUS_INCLUDE_PATH
设置为/home/Jason/include
,这相当于我给你的编译器选项。
修改强>
如果您只想测试安装,可以运行~/bin/Boost.Test
脚本(假设您在安装时已启用--with-libraries=test
)。否则在小时主页中应该有一个bin
目录(如果你将其用作前缀),如果其中有任何名称为Boost
的内容,请尝试运行它(但请记住设置{{ 1}}之前)。
答案 1 :(得分:-1)
$ cd /usr/include
$ sudo ln -s /usr/local/boost_xxxx/boost boost
$ sudo cp /usr/local/lib/libboost_regex-gcc41-mt-xxxx.so.xxxx /usr/lib/