如何在MAC OS中包含区分大小写的头文件?

我的代码包含两个名称相同但大小写不同的头文件。(例如:dataStore.hDataStore.h) 这是一个维护项目,因此我无法更改文件名。 运行make文件时,它发出如下警告:

指定的路径与磁盘[-Wnonportable-include-path]上的文件名不同

然后失败。 在-Wnonportable-include-path中添加makefile总体上无效。 如果有人使用了上面的标志并且它在MAC OS上或其他任何方式可以解决此问题,请告诉我。

river100 回答:如何在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.hData.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
本文链接:https://www.f2er.com/3075778.html

大家都在问