【发布时间】:2014-03-25 07:32:26
【问题描述】:
我有一个包含多个文件夹的项目:
folderA: header1.h header2.h
folderB: header1.h(modified) file1.cpp (includes header1.h and header2.h)
我想编写一个使用来自folderB 的header1.h 和来自folderA 的header2.h 的Makefile。
但是如果我这样写我的 Makefile:
LOCAL_C_INCLUDES += \
folderA\
然后我在编译说some values are defined twice时出错,即使头文件以#pragma once开头。
知道如何实现吗?
我也尝试过在 makefile 中明确列出头文件,但它似乎不起作用。
【问题讨论】:
-
如果你的编译器支持
#pragma once头文件不应该包含两次,我不认为是makefile的原因,你检查你的源代码了吗? -
这适用于哪个工具链:gcc 还是 MS?修改来源是一种选择吗?如果是这样,您可以忽略本地包含,只需将源更改为 #include "folder A/header2.h" 或 "folder B/header1.h"。
-
你可以试试#include "../FolderA/header2.h"(并删除makefile中的包含)!
-
我闻到了一个 XY 问题:为什么要创建如此令人惊讶的设置?通常目标是实现最小的惊喜。您是否正在尝试解决不同的问题?