编译Google API C++ SDK时卡在Fortran编译器检测环节,求指导
解决Google API C++ SDK编译时Fortran编译器卡住的问题
我之前成功编译过这个SDK,碰到过一模一样的Fortran编译器卡住的情况!其实这个问题大多是因为CMake默认会检查Fortran支持,但我们编译这个C++ SDK根本不需要Fortran,下面是我当时的解决步骤:
直接跳过Fortran编译器检查:在运行CMake命令时,添加参数强制禁用Fortran支持:
cmake .. -DCMAKE_Fortran_COMPILER="" -DBUILD_TESTING=OFF这里加上
-DBUILD_TESTING=OFF还能跳过测试模块的编译,节省不少时间。安装临时Fortran编译器(快速绕开):如果上面的参数没起作用,可以临时安装一个轻量的Fortran编译器,比如在Debian/Ubuntu系统上执行:
sudo apt-get install gfortran安装后CMake就能找到编译器,继续后续流程,完成编译后你也可以选择卸载它。
检查并调整CMake配置:如果还是卡住,建议打开项目根目录的
CMakeLists.txt,查找有没有enable_language(Fortran)或者find_package(Fortran REQUIRED)这类语句,把它们注释掉或者改成非强制检查(比如去掉REQUIRED关键字)。
另外,还有两个容易踩坑的点要提醒你:
- 确保克隆仓库时拉取了所有子模块:
很多编译失败都是因为缺失子模块依赖。git submodule update --init --recursive - 确认你安装了所有必要的C++依赖,比如libcurl、openssl、protobuf等,不同系统的安装命令略有不同,比如Ubuntu上可以用:
sudo apt-get install libcurl4-openssl-dev libssl-dev protobuf-compiler libprotobuf-dev
按照这些步骤操作,应该就能顺利完成编译了!
内容的提问来源于stack exchange,提问作者ytobi
相关产品推荐
相关产品推荐

