![无法在 Ubuntu 18.04 上安装 opencv 2.4.9,出现 CXXCompiler 错误](https://linux22.com/image/917765/%E6%97%A0%E6%B3%95%E5%9C%A8%20Ubuntu%2018.04%20%E4%B8%8A%E5%AE%89%E8%A3%85%20opencv%202.4.9%EF%BC%8C%E5%87%BA%E7%8E%B0%20CXXCompiler%20%E9%94%99%E8%AF%AF.png)
我正在尝试在 Ubuntu 18 上安装 opencv 2.4.9 以支持较旧的软件。从 sourceforge 链接下载版本后,我创建了一个 build 文件夹并运行以下 cmake 命令。
cmake -D WITH_TBB=OFF -D WITH_V4L=OFF -D INSTALL_C_EXAMPLES=OFF -D INSTALL_PYTHON_EXAMPLES=OFF -D BUILD_EXAMPLES=OFF -D WITH_QT=OFF -D WITH_OPENGL=OFF -D WITH_FFMPEG=OFF -D WITH_1394=OFF -D WITH_LIBV4L=OFF ..
我收到以下错误:
CMake Error at cmake/OpenCVDetectCXXCompiler.cmake:85 (list):
list GET given empty list
Call Stack (most recent call first):
CMakeLists.txt:77 (include)
CMake Error at cmake/OpenCVDetectCXXCompiler.cmake:86 (list):
list GET given empty list
Call Stack (most recent call first):
CMakeLists.txt:77 (include)
CMake Error at cmake/OpenCVDetectCXXCompiler.cmake:89 (math):
math cannot parse the expression: "*100 + ": syntax error, unexpected
exp_TIMES, expecting exp_OPENPARENT or exp_NUMBER (1)
Call Stack (most recent call first):
CMakeLists.txt:77 (include)
我怀疑这可能与旧版本的 cmake 有关,但我有 cmake 版本 3.1.1。
答案1
这似乎是一个已知问题,与格式变化有关g++ -dumpversion
:例如参见OpenCV SuperBuild 在 gcc 7+ 上失败。根据快速测试,似乎可以通过编辑文件OpenCVDetectCXXCompiler.cmake
、更改-dumpversion
为 来解决-dumpfullversion
。例如,如果您cmake
从树外build
子目录运行:
sed -i.bak 's/dumpversion/dumpfullversion/' ../cmake/OpenCVDetectCXXCompiler.cmake
或者,安装旧版 g++ 并按照此处的建议cmake
通过标志使用它-DCMAKE_CXX_COMPILER
配置错误“无法确定 g++ 版本”