我的代码包含两个名称相同但大小写不同的头文件。(例如:dataStore.h
和DataStore.h
)
这是一个维护项目,因此我无法更改文件名。
运行make文件时,它发出如下警告:
指定的路径与磁盘[-Wnonportable-include-path]上的文件名不同
然后失败。
在-Wnonportable-include-path
中添加makefile
总体上无效。
如果有人使用了上面的标志并且它在MAC OS上或其他任何方式可以解决此问题,请告诉我。
我的代码包含两个名称相同但大小写不同的头文件。(例如:dataStore.h
和DataStore.h
)
这是一个维护项目,因此我无法更改文件名。
运行make文件时,它发出如下警告:
指定的路径与磁盘[-Wnonportable-include-path]上的文件名不同
然后失败。
在-Wnonportable-include-path
中添加makefile
总体上无效。
如果有人使用了上面的标志并且它在MAC OS上或其他任何方式可以解决此问题,请告诉我。
.
|-- capital
| `-- Data.h
|-- main.c
|-- main.o
`-- small
`-- data.h
#include "data.h"
#pragma clang diagnostic push
#pragma clang diagnostic ignored "-Wnonportable-include-path"
#include "Data.h"
#pragma clang diagnostic pop
int main() {
return 0;
}
> gcc -c main.c -I./small -I./capital
但是,请注意,这不能解决您的问题。您遇到的问题是data.h
和Data.h
都指向同一个文件。 macOS具有准区分大小写的文件系统。
解决问题
我想您可能会被迫稍微更改旧代码。
.
|-- capital
| `-- Data.h
|-- link
| `-- Data.h -> ../capital/Data.h
|-- main.c
|-- main.o
`-- small
`-- data.h
和main.c
内
#include "data.h"
#include "./link/Data.h"
int main() {
smallf();
capitalf();
return 0;
}
然后
> gcc -c main.c -I. -I./small -I./capital