| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 932 人关注过本帖
标题:Makefile打不开文件
只看楼主 加入收藏
邶风
Rank: 5Rank: 5
等 级:职业侠客
帖 子:287
专家分:335
注 册:2009-1-20
结帖率:93.75%
收藏
已结贴  问题点数:20 回复次数:3 
Makefile打不开文件
makefile
文件夹a :  a.h a.cpp
文件夹b :  b.cpp

Makefile的内容:
VPATH = a :b
proc : a.o b.o
    g++ -o proc a.o b.o
a.o : a.h a.cpp
    g++ -c a.cpp
b.o : b.cpp
    g++ -c b.cpp

make后提示找不到a.cpp 为什么?写法错在哪里?
搜索更多相关主题的帖子: 文件 Makefile 
2010-02-22 12:01
Devil_W
Rank: 10Rank: 10Rank: 10
等 级:青峰侠
威 望:9
帖 子:1160
专家分:1797
注 册:2009-9-14
收藏
得分:20 
-BASH-4.0.35$ cat ~/linux/test_c++/Makefile
cc=gcc
CC=g++
LD=ld
OBJ=outcome
LIB=-lc -lpcrecpp -lpthread
CFLAGE= -g3
LDFLAGE=
SRC_DIR=./src/
INC_DIR=-I./include/
INC_LIB=-L./lib/
BIN_DIR=./bin/
SO_DIR=./lib/
SO_OBJ_SRC= ./lib/common.o \
            ./lib/BigInteger.o\
            ./lib/bigint.o
SO_OBJ=libcommon.so
A_OBJ=libcommon.a
A_DIR=./lib/
all: clean MKDIR $(BIN_DIR)$(OBJ)
        @cp $(BIN_DIR)$(OBJ) ./
        @cp $(SO_DIR)$(SO_OBJ) ./
MKDIR:
        @[ -d $(SO_DIR) ]  || mkdir -p $(SO_DIR)
        @[ -d $(BIN_DIR) ] || mkdir -p $(BIN_DIR)
$(BIN_DIR)$(OBJ):$(SO_DIR)main.o $(SO_OBJ_SRC)
#       ar cr $(SO_DIR)libcommon.a $(SO_OBJ_SRC)
#       $(CC) $(CFLAGE) $(LDFLAFGE) -o $@   $< $(A_DIR)$(A_OBJ)
        $(CC) -g -shared -o $(SO_DIR)$(SO_OBJ) $(SO_OBJ_SRC) -lc
        $(CC) $(CFLAGE)  $(INC_LIB) -lcommon -o $@ $< $(LIB)
$(SO_DIR)%.o:$(SRC_DIR)%.cpp
        $(CC) -fPIC $(CFLAGE) $(INC_DIR) -c $< -o $@ $(LIB)
$(SO_DIR)%.o:$(SRC_DIR)%.c
        $(cc) -fPIC $(CFLAGE) $(INC_DIR) -c $< -o $@ $(LIB)
clean:
        @rm -rf $(SO_DIR)*.o
        @rm -rf $(SO_DIR)
        @[ ! -f $(SO_DIR)*.so ] || rm -rf $(SO_DIR)*.so
        @[  ! -f $(BIN_DIR)$(OBJ) ] || rm $(BIN_DIR)$(OBJ)
        @[ ! -d $(BIN_DIR) ] || rm -rf $(BIN_DIR)
        @[ ! -d $(SO_DIR) ] || rm -rf $(SO_DIR)
        @[ ! -f $(SO_OBJ) ] || rm $(SO_OBJ)
install:
        @make -f Makefile
        @ cp $(BIN_DIR)* ./
uninstall:
        rm ./bin/$(OBJ)
        rm $(OBJ)
        rm $(SO_DIR)$(SO_OBJ)
        rm $(SO_DIR)*
package:
        tar cvjf ../test_c++.tar.gz ../test_c++
removepackage:
        rm ../test_c++.tar
-BASH-4.0.35$

Here is one of the sample Makefiles in my project.

you may have a check.
2010-02-22 15:15
邶风
Rank: 5Rank: 5
等 级:职业侠客
帖 子:287
专家分:335
注 册:2009-1-20
收藏
得分:0 
哦 就是把地址变成变量 ~~~ $(DIR)就可以了

那VPATH怎么办 我记得可以用这个设置路径的

#include
2010-02-22 16:57
tb861008
该用户已被删除
收藏
得分:0 
提示: 作者被禁止或删除 内容自动屏蔽
2010-05-04 17:32
快速回复:Makefile打不开文件
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.011913 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved