在 Linux 下迁移 C++ 开发/运行环境配置,通常可以分为几类情况。下面按最常见场景给你一个清晰、可操作的迁移方案。
先确认是哪一种:
gcc --version
g++ --version
cmake --version
sudo apt install g++ cmake make
# 或
sudo yum install gcc-c++ cmake
⚠️ 注意:
不同 glibc / libstdc++ 版本会导致二进制不兼容
建议:新机器系统版本 ≥ 原机器
导出已安装库:
# Debian/Ubuntu
dpkg --get-selections > packages.txt
新机器恢复:
sudo dpkg --set-selections < packages.txt
sudo apt-get dselect-upgrade
# 记录安装路径
ls /usr/local/lib
ls /usr/local/include
cmake ..
make -j$(nproc)
sudo make install
或
/usr/local/lib/*
/usr/local/include/*
/etc/ld.so.conf.d/
然后:
sudo ldconfig
只需要:
CMakeLists.txt新机器:
mkdir build && cd build
cmake ..
make
✅ 不依赖机器状态
确认:
CXX = g++
CXXFLAGS = -std=c++17
LDFLAGS = -lopencv_core
确保库路径一致:
export LD_LIBRARY_PATH=/usr/local/lib:$LD_LIBRARY_PATH
~/.bashrc
~/.profile
/etc/ld.so.conf.d/*.conf
示例:
export PATH=/opt/gcc-12/bin:$PATH
export LD_LIBRARY_PATH=/opt/lib:$LD_LIBRARY_PATH
FROM ubuntu:22.04
RUN apt update && apt install -y g++ cmake make
COPY . /app
WORKDIR /app
RUN mkdir build && cd build && cmake .. && make
✅ 完全避免“在我机器能跑”
rsync 整个系统(危险)ldconfig 已执行如果你愿意,可以告诉我:
我可以直接给你一份针对性的迁移命令清单。