makefile - 如何改变这个makefile的结构
问题描述
我是处理makefile的新手,并提供了这个:
demo: demo.cpp vegas.o ranlxd.o
g++ -o demo demo.cpp vegas.o ranlxd.o -lgfortran
vegas.o: vegas.F
gfortran -c vegas.F
ranlxd.o: ranlxd.c
gcc -c ranlxd.c
clean:
rm -f vegas.o ranlxd.o
distclean: clean
rm -f demo
我使用演示文件中的 vegas 和 ranlxd 文件中定义的函数。现在我想更改它,以便首先将所有代码文件转换为目标文件,然后最后链接,所以我尝试了以下操作:
demo: demo.o vegas.o ranlxd.o
demo.o vegas.o ranlxd.o -lgfortran
demo.o: demo.cpp
g++ -c demo.cpp
vegas.o: vegas.F
gfortran -c vegas.F
ranlxd.o: ranlxd.c
gcc -c ranlxd.c
clean:
rm -f vegas.o ranlxd.o
distclean: clean
rm -f demo
这导致了错误
demo.o vegas.o ranlxd.o -lgfortran
make: demo.o: Command not found
make: *** [makefile:9: demo] Error 127
我做错了什么,为了首先编译所有代码文件,我必须改变什么?我非常感谢任何形式的帮助!
解决方案
使用链接命令,您忘记实际调用链接器的程序
demo: demo.o vegas.o ranlxd.o
demo.o vegas.o ranlxd.o -lgfortran
应该:
demo: demo.o vegas.o ranlxd.o
g++ -o demo demo.o vegas.o ranlxd.o -lgfortran
推荐阅读
- javascript - 如何从firebase填充数据到chartJS html javesctipt
- python - UnicodeDecodeError:“utf-8”编解码器无法解码位置 4 中的字节 0xb4:无效的起始字节
- python - 无法在我的简单 python 代码中读取 JSON 文件
- python - Spyder:无法关闭正在运行的事件循环
- python - 如何从这两个字符串中提取字符串信息?
- ios - 无法将苹果帐户添加到 Visual Studio 2017
- swift5 - 快速删除文本字段末尾的空格
- flutter - 最近升级到新版本的 Flutter(v1.12.13+hotfix.8) 和其他库后,应用程序不断崩溃
- angular - 操作员使用拦截器时如何延迟等待承诺响应
- google-cloud-platform - 在云 sdk shell 中安装 ApacheBeam 时出错