/path/to//Amber/test/amber20_src/AmberTools/src/leap/src/leap/getline.c:117:17: error: conflicting types for 'write'
extern int write();
^
/usr/include/unistd.h:378:16: note: previous declaration is here
extern ssize_t write (int __fd, const void *__buf, size_t __n) __wur
^
/path/to/Amber/test/amber20_src/AmberTools/src/leap/src/leap/getline.c:133:17: warning: a function declaration without a prototype is deprecated in all versions of C and is treated as a zero-parameter prototype in C2x, conflicting with a previous declaration [-Wdeprecated-non-prototype]
extern int read();
^
/usr/include/unistd.h:371:16: note: conflicting prototype is here
extern ssize_t read (int __fd, void *__buf, size_t __nbytes) __wur
^
/path/toAmber/test/amber20_src/AmberTools/src/leap/src/leap/getline.c:133:17: error: conflicting types for 'read'
extern int read();
^
/usr/include/unistd.h:371:16: note: previous declaration is here
extern ssize_t read (int __fd, void *__buf, size_t __nbytes) __wur
17 warnings and 2 errors generated.
clang-15: warning: -Wl,-z,muldefs: 'linker' input unused [-Wunused-command-line-argument]
clang-15: warning: argument unused during compilation: '-fuse-ld=lld' [-Wunused-command-line-argument]
make[2]: *** [AmberTools/src/leap/src/leap/CMakeFiles/leap_common_obj.dir/build.make:135: AmberTools/src/leap/src/leap/CMakeFiles/leap_common_obj.dir/getline.c.o] Error 1
make[2]: *** Waiting for unfinished jobs....
编译所遇到的错误:
/path/to//Amber/test/amber20_src/AmberTools/src/leap/src/leap/getline.c:117:17: error: conflicting types for 'write' extern int write(); ^ /usr/include/unistd.h:378:16: note: previous declaration is here extern ssize_t write (int __fd, const void *__buf, size_t __n) __wur ^ /path/to/Amber/test/amber20_src/AmberTools/src/leap/src/leap/getline.c:133:17: warning: a function declaration without a prototype is deprecated in all versions of C and is treated as a zero-parameter prototype in C2x, conflicting with a previous declaration [-Wdeprecated-non-prototype] extern int read(); ^ /usr/include/unistd.h:371:16: note: conflicting prototype is here extern ssize_t read (int __fd, void *__buf, size_t __nbytes) __wur ^ /path/toAmber/test/amber20_src/AmberTools/src/leap/src/leap/getline.c:133:17: error: conflicting types for 'read' extern int read(); ^ /usr/include/unistd.h:371:16: note: previous declaration is here extern ssize_t read (int __fd, void *__buf, size_t __nbytes) __wur 17 warnings and 2 errors generated. clang-15: warning: -Wl,-z,muldefs: 'linker' input unused [-Wunused-command-line-argument] clang-15: warning: argument unused during compilation: '-fuse-ld=lld' [-Wunused-command-line-argument] make[2]: *** [AmberTools/src/leap/src/leap/CMakeFiles/leap_common_obj.dir/build.make:135: AmberTools/src/leap/src/leap/CMakeFiles/leap_common_obj.dir/getline.c.o] Error 1 make[2]: *** Waiting for unfinished jobs....解决思路:
把read、write函数的返回值int修改为ssize_t即可
解决方案:
把amber20_src/AmberTools/src/leap/src/leap/getline.c文件打开
修改117和133行的read、write函数的返回值:
修改前
修改后:
继续编译可以通过该错误