在另一台机器上运行从clang llvm编译的程序

我正在通过clang llvm(版本3.1)编译一个程序,并尝试在同样具有相同clang llvm版本的计算机上运行它.我正在编译Ubuntu 10,但是我正在尝试运行的另一台计算机有CentOS 5.在CentOS中,我也遇到了通过LLVM编译的问题(编译器传递在LLVM中实现).这就是为什么我想在Ubuntu上编译,从那里获取exe并在CentOS机器上运行它.

但是,当我尝试这样做时,我收到以下错误.

./main: /usr/lib64/libstdc++.so.6: version `GLIBCXX_3.4.11' not found (required by ./main)
./main: /usr/lib64/libstdc++.so.6: version `GLIBCXX_3.4.9' not found (required by ./main)

我该怎么解决这个问题.请注意,我没有在该计算机上进行root访问.

解决方法:

一种解决方案是将库从您工作的Ubuntu机器复制到CentOS机器.放入Home / Workdir / whereever(TM)并将LD_PRELOAD变量设置为该库.但这可能是相当繁琐的,因为这可能不是唯一缺少的库(并且可能库依赖于其他库,您还需要…).

如果两台机器具有相同的架构(例如,如果你的ubuntu机器是32位并且你的CentOS 64它不会工作),这也是有效的.

上一篇:c – 如何将可变数量的参数传递给LLVM opt pass?


下一篇:无法使用llvm和clang解析C.