Files
opencam/opencamcpp/build_opencv.sh
2025-02-27 16:04:23 +01:00

83 lines
2.1 KiB
Bash

#!/bin/bash
# Exit on error
set -e
# Function to check CUDA installation
check_cuda() {
if ! command -v nvcc &> /dev/null; then
echo "CUDA not found! Please install CUDA toolkit first."
exit 1
fi
echo "Found CUDA installation: $(nvcc --version | head -n1)"
}
# Function to check GPU
check_gpu() {
if ! command -v nvidia-smi &> /dev/null; then
echo "No NVIDIA GPU found or drivers not installed!"
exit 1
fi
echo "Found GPU: $(nvidia-smi -L)"
}
# Check CUDA and GPU
check_cuda
check_gpu
# Get CUDA compute capability
CUDA_ARCH=$(nvidia-smi --query-gpu=compute_cap --format=csv,noheader)
echo "GPU Compute Capability: $CUDA_ARCH"
# Create build directory
cd ~/opencv_build/opencv
mkdir -p build
cd build
# Configure OpenCV build
cmake -D CMAKE_BUILD_TYPE=RELEASE \
-D CMAKE_INSTALL_PREFIX=/usr/local \
-D OPENCV_EXTRA_MODULES_PATH=../../opencv_contrib/modules \
-D WITH_CUDA=ON \
-D WITH_CUDNN=OFF \
-D OPENCV_DNN_CUDA=ON \
-D ENABLE_FAST_MATH=1 \
-D CUDA_FAST_MATH=1 \
-D CUDA_ARCH_BIN=$CUDA_ARCH \
-D WITH_CUBLAS=1 \
-D WITH_TBB=ON \
-D WITH_V4L=ON \
-D WITH_QT=ON \
-D WITH_OPENGL=ON \
-D WITH_GSTREAMER=ON \
-D OPENCV_GENERATE_PKGCONFIG=ON \
-D OPENCV_PC_FILE_NAME=opencv.pc \
-D OPENCV_ENABLE_NONFREE=ON \
-D INSTALL_PYTHON_EXAMPLES=OFF \
-D INSTALL_C_EXAMPLES=OFF \
-D BUILD_EXAMPLES=OFF \
-D BUILD_opencv_cudacodec=OFF \
-D OPENCV_ENABLE_MEMALIGN=ON \
-D WITH_OPENEXR=ON \
-D OPENCV_ENABLE_MEMALIGN=ON \
-D WITH_EIGEN=ON \
-D ENABLE_PRECOMPILED_HEADERS=OFF \
..
# Build using all available CPU cores
make -j$(nproc)
# Install
sudo make install
sudo ldconfig
# Print OpenCV installation information
echo "OpenCV installation completed!"
echo "OpenCV version: $(pkg-config --modversion opencv4)"
echo "Installation location: $(pkg-config --variable=prefix opencv4)"
# Create a pkg-config path file
sudo sh -c 'echo "/usr/local/lib/pkgconfig" > /etc/ld.so.conf.d/opencv.conf'
sudo ldconfig
echo "Setup complete! You can now use OpenCV with CUDA support."