我需要一些帮助。
我在本地从事一个C项目,它运行得很完美,没有任何问题。然后,我将整个项目文件移至Linux服务器(使用Bitwise),并使用以下命令运行它:
gcc -g -std=c99 -Wall -pedantic-errors -Werror -DNDEBUG main.c map.c map.h utilities.c
utilities.h election.c election.h extended_map.c extended_map.h test_utilities.h -o outmap
同样,一切都按预期进行。
[现在,我想用保存在该服务器上的版本替换test_utilities.h
的版本,所以我打开了main.c
(这是唯一包含test_utilities.h
并被替换的文件:
#include "test_utilities.h"
与
#include "~mtm/public/1920b/ex1/test_utilities.h"
但是终端显示了以下错误:
gcc: error: test_utilities.h: No such file or directory
-bash-4.2$
编写~mtm
以引用用户mtm
的主目录是您的Shell可以理解的快捷方式。这不是C预处理器可以理解的。因此,您必须将其拼写为/home/mtm
(或mtm
主目录所在的位置),而不是~mtm
。
也就是说,更好的方法是将其保留为"test_utilities.h"
,而是调整编译器的包含路径(调用编译器时通过-I
指定)以包含~mtm/public/1920b/ex1/
。