# Build Issue ## ### Protobuf (protoc) Version Conflict
#### Problem When installing dependencies like ROS or OpenCV on a system (e.g., UPC), or if an older version of protoc is pre-installed, the following error might occur during pip install or cmake:
#### Error Message: ```bash # error This file was generated by an older version of protoc which is ``` This happens because a lower-priority protoc version is being used instead of the required version.
#### Solution: 1. Download the Correct protoc Version - Visit the Protobuf Releases page and download the appropriate protoc version based on your architecture: - For ARM (e.g., UPC): protoc-21.12-linux-aarch_64.zip - For x86: protoc-21.12-linux-x86_64.zip
2. Extract the Archive - Extract the downloaded .zip file: ```bash unzip protoc-21.12-linux-YOUR_ARCHITECTURE.zip -d protoc-21.12 ```
3. Update PATH - Set the extracted protoc binary directory at the beginning of your PATH environment variable: - Replace /path/to/extracted with the actual path where the archive was extracted. - By placing the required protoc version at the start of the PATH environment variable, the system prioritizes it over older versions already installed. ```bash export PATH="/path/to/extracted/protoc-21.12/bin:$PATH" ``` - Verification - Run the following command to confirm the correct version of protoc is being used: ```bash nvidia@tegra-ubuntu:~$ protoc --version libprotoc 3.21.12 ```
4. Retry Build or Installation After updating the PATH, retry the cmake or pip command. The issue should now be resolved. --- ### CMake Preset Error
#### Problem: An error occurs when running CMake with the `--preset option`: "The source directory does not exist."
#### Error Message: ```bash user@hostname:~/project-directory$ cmake --preset conan-release CMake Error: The source directory "/home/user/project-directory/conan-release" does not exist. Specify --help for usage, or press the help button on the CMake GUI. ```
#### Solution:
#### Check CMake Version: - This error is often caused by using an older CMake version. Ensure that your CMake version is 3.23 or higher. ```bash cmake --version ``` - If the version is outdated, refer to the installation process in the CMake installation section to upgrade to the latest version. --- In most cases, the issue can be resolved by following the above steps. If the problem persists, review the following items.
#### Additional Checks: - **Preset Path**: Make sure you are running the CMake command from the project's root directory. - **Preset Name**: Verify that the preset name defined in the `CMakePresets.json` file is correct. - **Git Submodule**: Ensure that the submodules are properly initialized when cloning the project. ```bash git submodule update --init --recursive ```
#### References: - For more detailed information, refer to the Building Projects Using CMake Presets documentation.