【发布时间】:2014-08-07 04:08:14
【问题描述】:
我在同一级别有两个目录。我想使用在另一个目录的源文件中的一个目录中创建的头文件。我想在不提供头文件的相对或绝对路径的情况下实现相同的目标。
目录结构为:
main_dir/
dir1/
main.cpp
Makefile.am
dir2/
abc.h
abc.cpp
Makefile.am
main.cpp 需要abc.h。两个目录的 makefile 中应该写什么来链接它们?
编辑
dir2 的 Makefile.am
noinst_LIBRARIES = libabc.a
AM_CPPFLAG = -I$(main_dir)/dir2 \
$(APP_CFLAGS)
libabc_a_SOURCES = abc.h \
abc.cpp
dir1 的 Makefile.am
noinst_LIBRARIES = libmain.a
AM_CPPFLAG = -I$(main_dir)/dir1 \
$(APP_CFLAGS)
libmain_a_SOURCES = main.cpp
libmain_a_LIBADD = libabc.a
我收到错误:No rule to make target 'libabc.a', needed by 'libmain.a'. Stop.
【问题讨论】:
-
你要么需要提供每个文件的相对/完整路径,要么使用类似vpath 指令的东西。
-
通过“链接它们”,您是否想让 main.cpp 中的
#include <abc.h>包含 main_dir/dir2/abc.h? -
@immibis 是的,我想要那个!
-
@immibis 任何想法如何实现它?