对于我正在进行的项目,我想尝试以下程序:http: //sourceforge.net/projects/tirg/
它由两个 C++ 文件组成,但我无法在我的运行 Linux 的笔记本电脑上编译它,而它在我的一个朋友的运行 Mac OS 的笔记本电脑上编译没有任何问题。我在编译 C++ 代码方面没有任何经验,所以这可能是初学者的错误。
运行 Mac OS 并成功编译代码的笔记本电脑使用了以下 g++ 版本:
i686-apple-darwin11-llvm-g++-4.2 (GCC) 4.2.1 (Based on Apple Inc. build 5658) (LLVM build 2336.11.00)
我尝试在运行 Arch LInux(64 位)的笔记本电脑上使用 gcc、g++、clang 和 clang++ 编译 C++ 文件,版本如下:
gcc and g++ (GCC) 4.8.1 20130725 (prerelease)
clang version 3.3 (tags/RELEASE_33/final)
Target: x86_64-unknown-linux-gnu
Thread model: posix
我在编译时得到的错误是:
/usr/include/c++/4.8.1/bits/stl_vector.h:1240:36: error: no matching function for call to ‘std::vector<std::vector<unsigned char> >::_M_fill_assign(int&, int&)’
{ _M_fill_assign(__n, __val); }
^
这是由这行代码引起的:
std::vector<std::vector<trg::Rgb> > a(300, 255);
我已将编译的完整输出放在 pastebin 上:http: //pastebin.com/m285PSrH
我在编译 OpenCV 时也遇到了问题,所以我的配置可能有问题。我认为这是一个版本问题,例如标准库的错误版本。
希望有更多 C++ 经验的人能指出可能出了什么问题。谢谢!