- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个小的测试用例程序,只是为了看看 boost 是否在某些系统上工作。
#include <iostream>
#include <boost/math/distributions/normal.hpp>
#include <boost/math/distributions/chi_squared.hpp>
using namespace std;
int main(int argc, char* argv[]) {
// Boost test
boost::math::normal std_normal;
double x = 1.5;
cout << boost::math::cdf(std_normal, x) << endl;
boost::math::normal non_std_normal(1.5, 2);
cout << boost::math::cdf(non_std_normal, x) << endl; // should output 1/2
// Test the chi-squared inverse
int degree_of_freedom = 19;
boost::math::chi_squared chi_dist(degree_of_freedom);
cout << boost::math::quantile(complement(chi_dist, 0.05)) << endl;
return 0;
}
我 ssh 到一些服务器,它们只允许我通过一些充满共享对象和存档文件(即 libboost_log.so、libboost_math_c99.a 等)的目录来使用 boost 库。
老实说,我不知道如何使用这些文件。我试过了(对于 g++ 和 gcc)
g++ test.cpp -o test -l /share/apps/boost/1.55.0/lib
g++ test.cpp -o test -l /share/apps/boost/1.55.0/lib -lboost_system -lboost_filesystem
g++ -std=c++11 -pedantic test.cpp -I/share/apps/boost/1.55.0/include/ -o test
g++ test.cpp -o test -I /share/apps/boost/1.55.0/include -lboost_system -lboost_filesystem
其中/share/apps/boost/1.55.0/lib 是 .so 和 .a 文件的目录/share/apps/boost/1.55.0/include 是 .hpp 文件的目录。
我被拒绝了第三条命令的权限,输出如下:
In file included from /share/apps/boost/1.55.0/include/boost/math/special_functions/detail/round_fwd.hpp:11:0, from /share/apps/boost/1.55.0/include/boost/math/special_functions/math_fwd.hpp:26, from /share/apps/boost/1.55.0/include/boost/math/special_functions/erf.hpp:13, from /share/apps/boost/1.55.0/include/boost/math/distributions/normal.hpp:19, from test.cpp:12: /share/apps/boost/1.55.0/include/boost/config.hpp:30:29: fatal error: /share/apps/boost/1.56.0/build/boost_1_56_0/boost/config/user.hpp: Permission denied
我收到第四条命令的错误:
fatal error: boost/math/distributions/normal.hpp: No such file or directory.
最佳答案
你想用
g++ -isystem/share/apps/boost/1.55.0/include -L/share/apps/boost/1.55.0/lib test.cpp -o test -lboost_system -lboost_filesystem
-isystem
告诉编译器去哪里寻找系统头文件。 -L
告诉链接器到哪里寻找库。根据您的代码片段,您是否需要 boost 文件系统或系统库并不明显。
如果您无法读取远程服务器上的 boost header 或共享库,则这与您的问题无关。请联系您的系统管理员寻求帮助。
关于c++ - 编译依赖于仅包含 .so 或 .a 文件的 boost 库的程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28533486/
我是一名优秀的程序员,十分优秀!