# CMake Path Length on Linux

**URL:** https://discourse.cmake.org/t/cmake-path-length-on-linux/13993
**Category:** Usage
**Created:** [April 27, 2025, 2:04am UTC](https://discourse.cmake.org/t/cmake-path-length-on-linux/13993 "2025-04-27T02:04:57Z")
**Posts on this page:** 1
**Page:** 1

<div class="post-metadata">

### Author: ![bslack](https://discourse.cmake.org/letter_avatar_proxy/v4/letter/b/49beb7/32.png) [@bslack](https://discourse.cmake.org/u/bslack)
#### Post date: [April 27, 2025, 2:04am UTC](https://discourse.cmake.org/t/cmake-path-length-on-linux/13993/1 "2025-04-27T02:04:57Z")

</div>

Hello,

Very new to using CMake. Would appreciate any pointers. I have stumbled upon an issue where I cannot seem to include a path over 148 characters long.

For example with the following:

```auto
set(AA_PUBLIC_HEADERS
        ${AA_ROOT}/include
         /mnt/data/src/xam_pn19/uuos/apps/apps_proc/poky/build/tmp-glibc/work/x86_64-linux/am-media-audioutils-native/1.0-r0/recipe-sysroot-native/usr/include #<- 149 chars
)

target_include_directories(${PROJECT_NAME} PUBLIC
  ${AA_PUBLIC_HEADERS}
)

```

When compiling I get:

```auto
cd /mnt/data/src/xam_pn19/uuos/apps/apps_proc/vendor/am/audio/libs/internal/audioutils/src && /usr/bin/c++ -DFMT_LOCALE -DFMT_SHARED -DSIMDJSON_THREADS_ENABLED=1 -DSPDLOG_COMPILED_LIB -DSPDLOG_FMT_EXTERNAL -DSPDLOG_SHARED_LIB -I/mnt/data/src/xam_pn19/uuos/apps/apps_proc/vendor/am/audio/libs/internal/audioutils/include -isystem /mnt/data/src/xam_pn19/uuos/apps/apps_proc/poky/build/tmp-glibc/work/x86_64-linux/am-media-audioutils-native/1.0-r0/recipe-sysroot-native/usr/share -std=gnu++20 -Wall -Wextra -Wpedantic -Werror -MD -MT src/CMakeFiles/ammediautils.dir/logger/avm/AVMLogAdapter.cpp.o -MF CMakeFiles/amaudioutils.dir/logger/avm/AVMLogAdapter.cpp.o.d -o CMakeFiles/ammediautils.dir/logger/avm/AVMLogAdapter.cpp.o -c /mnt/data/src/xam_pn19/uuos/apps/apps_proc/vendor/am/audio/libs/internal/audioutils/src/logger/avm/AVMLogAdapter.cpp

```

The longer include path is not included. If I drop a single character (anywhere in the path) to bring it under 149 characters it works.  
E.g.

```auto
set(AA_PUBLIC_HEADERS
        ${AA_ROOT}/include
         /mnt/data/src/xam_pn19/uuos/apps/apps_proc/poky/build/tmp-glibc/work/x86_64-linux/am-media-audioutils-native/1.0-r0/recipe-sysroot-native/usr/includ # <- Drop 'e' include
)

```

The path gets included:

```auto
cd /mnt/data/src/xam_pn19/uuos/apps/apps_proc/vendor/am/audio/libs/internal/audioutils/src && /usr/bin/c++ -DFMT_LOCALE -DFMT_SHARED -DSIMDJSON_THREADS_ENABLED=1 -DSPDLOG_COMPILED_LIB -DSPDLOG_FMT_EXTERNAL -DSPDLOG_SHARED_LIB -I/mnt/data/src/xam_pn19/uuos/apps/apps_proc/vendor/am/audio/libs/internal/audioutils/include **-I/mnt/data/src/xam_pn19/uuos/apps/apps_proc/poky/build/tmp-glibc/work/x86_64-linux/am-media-audioutils-native/1.0-r0/recipe-sysroot-native/usr/includ** -isystem /mnt/data/src/xam_pn19/uuos/apps/apps_proc/poky/build/tmp-glibc/work/x86_64-linux/am-media-audioutils-native/1.0-r0/recipe-sysroot-native/usr/share -std=gnu++20 -Wall -Wextra -Wpedantic -Werror -MD -MT src/CMakeFiles/ammediautils.dir/logger/avm/AVMLogAdapter.cpp.o -MF CMakeFiles/amaudioutils.dir/logger/avm/AVMLogAdapter.cpp.o.d -o CMakeFiles/ammediautils.dir/logger/avm/AVMLogAdapter.cpp.o -c /mnt/data/src/xam_pn19/uuos/apps/apps_proc/vendor/am/audio/libs/internal/audioutils/src/logger/avm/AVMLogAdapter.cpp

```

I have tried setting things like:

```auto
set(CMAKE_OBJECT_PATH_MAX 4096)
set(CMAKE_OBJECT_NAME_MAX 254)

```

I cannot see any warning in logs (–trace / --debug-output) as to it dropping the path. Symbolic links resolve to the ‘full path’. Moving the folder anywhere works.

Is there a path length limitation somewhere or alternatively any tips to debug on what is triggering this?
