Meant to reply all, but remove the gcc list as this is really a gcc-help list question. My answer is below. On Sun, Oct 10, 2021 at 11:23 PM 桂永林 <guiyonglin@xxxxxxxxxx> wrote: > Hello GCC, > we use gcc compiler to complile my project on windows10 system, but it > always report bellow error: > > > c:/program files (x86)/gnu tools arm embedded/7 > 2018-q2-update/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/bin/ld.exe: > cannot find -lgh3x2x_drv_co > collect2.exe: error: ld returned 1 exit status > make: *** [makefile:151: wd6110a.elf] Error 1 > > > > It seems that the link can not fond some lib, but the real reason is that > the project path and source code file on windows environment is too long. > But,if we use the same GCC version to compile my project on Linux > enviroment, it can compile sucess. The GCC compiler and source code we used > on Linux is same with Windos. > We don't know how the GCC restict the path lenth and source code file > number on Windows, so we need your help us how to fix this problem? > Thanks! > OperaGui > > >From the GCC man page, you can use the @file option to gcc. This can be a file that contains your include and link directory paths, etc.... This way, you will not exceed the argument list size limit. @file Read command-line options from file. The options read are inserted in place of the original @file option. If file does not exist, or cannot be read, then the option will be treated literally, and not removed. Options in file are separated by whitespace. A whitespace character may be included in an option by surrounding the entire option in either single or double quotes. Any character (including a backslash) may be included by prefixing the character to be included with a backslash. The file may itself contain additional @file options; any such options will be processed recursively. Tom