Project Path, File, and Folder Naming Restrictions

Last modified by Microchip on 2023/11/10 11:05

Name Restrictions

You should only use the following ASCII characters for path, file, and folder names:

Makefile Restrictions

If you have files or directories within the project directory using either the () or [] characters ( e.g., t (1).c ), or if you use absolute paths to directories with these characters, the characters will cause the "no rule to make target" problem.

The workaround is to avoid doing it at this time. System libraries can be added through the project properties and therefore, do not need to be added to the project.

Windows® Operation System Restrictions

Windows operating systems have a maximum path length of 260 characters. An explanation from Microsoft® is found here: Naming Files, Paths, and Namespaces.

Although Windows will attempt to stop you from creating path lengths that are too long, it is possible to do this (from certain applications, cutting and pasting, etc.). If a project source file uses such a path, the project will not build correctly.

Additionally, there is a command-line limitation of 8191 characters for Windows.

Cross-Platform Operating Systems Restrictions

If you plan on using MPLAB® X IDE on different platforms (Windows, macOS®, or Linux® operating systems), be aware of these issues:

  • Use the forward slash “/” in relative paths. The backslash “\” works only on Windows platforms. Example: #include headers/myheader.h.
  • Linux is case-sensitive, so generictypedefs.h is not the same as GenericTypeDefs.h.

Recommendations

When adding existing files or folders to a project, consider the name restrictions discussed above. Specifically, take care with long paths. Although there is a known limit for Windows (path length of 260 characters, command line of 8191 characters), a very long path on other systems may cause issues. If you have problems building, consider shortening long paths or moving files or folders into the project folder.

To ensure the most portable project, use relative paths when importing files or folders.