编译dictionary.c遇Linker Error:输出文件speller为目录,求解决
解决链接器错误:cannot open output file speller: Is a directory
你的猜测完全正确——链接器试图生成名为speller的可执行文件,但当前工作目录下已经存在同名的speller/目录,导致文件生成路径冲突。以下是几种直接的解决方法:
- 重命名现有目录:执行命令将
speller目录改成不冲突的名称,比如:
之后重新运行mv speller speller_sourcemake即可。 - 修改Makefile的输出文件名:打开Makefile,找到定义目标可执行文件的行(通常类似
speller: dictionary.o main.o),把目标名替换成其他名称,比如speller_exec,这样编译后会生成speller_exec可执行文件,不会和目录冲突。 - 指定可执行文件输出到其他路径:先创建一个用于存放可执行文件的子目录,比如:
然后修改Makefile中的编译规则,在链接命令里加上mkdir -p bin-o bin/speller参数,让可执行文件生成到bin目录下,避免和现有目录重名。
内容的提问来源于stack exchange,提问作者Mono
相关产品推荐
相关产品推荐

