首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在c++中实现基本Makefile的麻烦

在c++中实现基本Makefile的麻烦
EN

Stack Overflow用户
提问于 2013-10-20 03:33:36
回答 1查看 174关注 0票数 1

好的,我需要为我写的程序做一个基本的Makefile。以下是这些文件:

代码语言:javascript
运行
复制
list.c
hash.c
order_book.c
libdefault_hash.a //provided already so I do not need to create.

我需要为list.c和hash.c创建库,以便orderbook在编译时可以使用它们。所以这就是我目前在Makefile中所拥有的

代码语言:javascript
运行
复制
all: orderbook

orderbook: orderbook.c liblist.a libhash.a
    gcc -std=c99 -o orderbook order_book.c list.c -L. -llist -lhash -libdefault_hash

liblist.a: list.c
    gcc -std=c99 -c list.c
    ar rcu liblist.a list.o

libhash.a: hash.c
    gcc -std=c99 -c hash.c
    ar rcu libhash.a hash.o

我对makefiles如何工作的理解很小,但这是我的思维过程,

  1. all: orderbook将意味着orderbook:将运行。

  1. 然后orderbook.c将编译,然后代码将编译库。

  1. 一旦编译了库,它就会运行: gcc -std=c99 -o orderbook order_book.c list.c -L. -llist -lhash -libdefault_hash

结果应该是一个名为orderbook的简单程序文件,但是终端打印出来:

代码语言:javascript
运行
复制
$ make
gcc -std=c99 -o orderbook order_book.c list.c hash.c -L. -llist -lhash -libdefault_hash
/usr/lib/gcc/x86_64-pc-linux-gnu/4.6.3/../../../../x86_64-pc-linux-gnu/bin/ld: skipping incompatible ./liblist.a when searching for -llist
/usr/lib/gcc/x86_64-pc-linux-gnu/4.6.3/../../../../x86_64-pc-linux-gnu/bin/ld: cannot find -llist
/usr/lib/gcc/x86_64-pc-linux-gnu/4.6.3/../../../../x86_64-pc-linux-gnu/bin/ld: cannot find -libdefault_hash
collect2: ld returned 1 exit status
make: *** [orderbook] Error 1
$

任何帮助/指导都是非常感谢的。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-10-20 04:59:41

让我们用一小步来处理。首先,下面是一系列类似于您的想法的命令:

代码语言:javascript
运行
复制
gcc -std=c99 -c list.c -o list.o
ar rcu liblist.a list.o
gcc -std=c99 -c hash.c -o hash.o
ar rcu libhash.a hash.o
gcc -std=c99 -o orderbook order_book.c -L. -llist -lhash -libdefault_hash

在不使用Make的情况下尝试这些命令,看看哪些命令可以工作(您确定"rcu“不应该是”-rcu“吗?)通过评论这个答案或者编辑你的问题,告诉我们结果。一旦这些命令生效,我们就可以开始编写makefile了。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19473648

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档