编译无法找到头文件

OneOnce OneOnce 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
代码目录结构:

Makefile在dll01里面,编译也是来这里编译。
Public.h
#ifndef __PUBLIC_H__
#define __PUBLIC_H__
#define PI 3.1415926
#endif // !__PUBLIC_H__

TestLib.h
测试包含上一层头文件,如包含Public.h:#include <dll01/Public.h>
#ifndef __TESTLIB_H__
#define __TESTLIB_H__
#include <dll01/Public.h>
class TestLib
{
public:
TestLib();
virtual ~TestLib();
public:
int TestSum(int a, int b);
};
#endif // ! __TESTLIB_H__

TestLib.cpp
#include "TestLib.h"
TestLib::TestLib() {
}
TestLib::~TestLib() {
}
int TestLib::TestSum(int a, int b) {
return a + b;
}

Makefile

TARGET := libMyMath.so
TARGET_PATH :=../
CC := g++
LIBS :=
LDFLAGS :=
DEFINES :=
INCLUDES := -I..
CFLAG := -g -Wall -O3 -std=c++11 $(DEFINES) $(INCLUDES)
CXXFLAGS:= $(CFLAGS)
VPATH = . ./subdir
SOURCE := $(wildcard *.cpp) $(wildcard subdir/*.cpp)
SRC_WITHOUTDIR:= $(notdir $(SOURCE))
OBJS := $(patsubst %.c,%.o,$(patsubst %.cpp,%.o,$(SRC_WITHOUTDIR)))

$(TARGET) : $(OBJS)
$(CC) -shared -o $@ $(OBJS) $(LDFLAGS) $(INCLUDES)
%.o : %.cpp
$(CC) $(CXXFLAGS) -fpic -c $< -o $@ $(LDFLAGS) $(LIBS)

.PHONY : clean
clean:
rm -f *.o
rm -f $(TARGET)

通过INCLUDES := -I..让包含目录指向dll01的上一层
编译提示找不到Public.h
错误信息:
g++ -fpic -c ./subdir/TestLib.cpp -o TestLib.o
In file included from ./subdir/TestLib.cpp:1:0:
./subdir/TestLib.h:4:26: fatal error: dll01/Public.h: No such file or directory
compilation terminated.
Makefile:68: recipe for target 'TestLib.o' failed
make: *** [TestLib.o] Error 1
...全文

相关推荐

浅谈VS中添加头文件时显示无法找到文件的问题

下面小编就为大家带来一篇浅谈VS中添加头文件时显示无法找到文件的问题。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧

weixin_38530115

VScode编译C++ 头文件显示not found的问题

一直用codeblocks,想试试vscode,结果这个问题给我弄懵逼了。一开始以为是iostream这个头文件not found,后来发现第一个头文件都会这样显示,放到后面就不会了,然而,光这一个显示not found(虽然并不影响编译),就能逼死强迫症的啊~~~ 言归正传,这个问题解决方法是: 文件——首选项——设置——搜索“clang.diagnostic.enable”,然后把勾勾去掉就好了。这是插件C/C++ Clang Command Adapter的一个选项~~ 如果一堆英文看着难受的话,安装插件Chinese (Simplified) Language Pack for Vi

weixin_38502693

cv.h opencv头文件

opencv 头文件 cv.h 编译运行c++常会遇到无法找到cv.h文件。

shy111222

qt关于编译fontconfig缺少的头文件

qt关于编译fontconfig缺少的头文件,跟我的博客关于如何编译qt-pc,qt-x86,qt-arm,缺少中文字体的支持,和编译fontconfig.h的头文件。

缘客_ql

CLion头文件问题解决[代码]

本文介绍了在使用CLion时遇到找不到头文件的问题及其解决方法。CLion作为一款流行的C/C++集成开发环境,有时会出现无法识别或定位头文件的情况,这通常与项目配置、编译器设置或路径问题有关。文章详细分析了可能导致该问题的原因,并提供了具体的解决步骤,帮助开发者快速恢复开发环境。

mac99
评论 5
收藏 已收藏
分享
返回顶部
OneOnce
Linux/Unix社区 23,224 成员 74,535 内容