在Google Colab中编译生成的二进制文件是否可以重复使用?
能否复用编译好的C++依赖包
完全可以,这是解决Colab重复编译依赖耗时问题的常用方案,操作流程如下:
操作步骤
- 第一步:挂载Google Drive到Colab运行实例
运行以下代码完成挂载,按提示完成身份验证即可:from google.colab import drive drive.mount('/content/drive') - 第二步:编译依赖时指定安装路径到Drive目录
提前在Drive中创建专门存放编译产物的目录,比如/content/drive/MyDrive/colab_cpp_deps,编译时指定安装前缀到该路径:- 用configure编译的项目:运行
./configure --prefix=/content/drive/MyDrive/colab_cpp_deps后再执行make && make install - 用CMake编译的项目:运行
cmake -DCMAKE_INSTALL_PREFIX=/content/drive/MyDrive/colab_cpp_deps ..后再执行make && make install
- 用configure编译的项目:运行
- 第三步:下次启动Colab时加载已编译的依赖
重新挂载Drive后,运行以下命令将编译产物路径加入系统环境变量即可直接调用:export PATH=/content/drive/MyDrive/colab_cpp_deps/bin:$PATH export LD_LIBRARY_PATH=/content/drive/MyDrive/colab_cpp_deps/lib:$LD_LIBRARY_PATH export CPATH=/content/drive/MyDrive/colab_cpp_deps/include:$CPATH
注意事项
- 要确保你当前使用的Colab运行环境版本和编译依赖时的版本一致,若Colab底层Ubuntu镜像升级,原有二进制可能出现不兼容问题,重新编译一次即可恢复正常
- 若编译的是CUDA相关的GPU依赖包,需要保证当前分配的Colab实例的CUDA版本和编译时的CUDA版本一致,否则会出现运行报错
- 存放编译产物的路径不要使用中文、空格或特殊字符,避免环境变量识别出错
内容的提问来源于stack exchange,提问作者cyto
相关产品推荐
相关产品推荐

