打开一个atollic truestudio工程,编译后出现问题

问题遇到的现象和发生背景

描述 资源 路径 位置 类型 fatal error: UserConfig.h: No such file or directory GPS.h /Family_Gas_Alarm/Servers/GPS

问题相关代码,请勿粘贴截图
问题是环境没有搭建好,还是缺少相应头文件
运行结果及报错内容
我的解答思路和尝试过的方法
我想要达到的结果

能够运行,烧录

问题私下远程解决了,是源代码工程的问题,卖代码的人写的屎山代码,而且还故意删减库文件。整个工程缺少重要的UserLib这个文件夹。

题外话,这都什么年代了还有人用3.5标准库写代码,说实话,用3.5标准库写代码的人,有不少部分编程水平不咋地,乱七八糟的重命名,匪夷所思的变量,外设初始化逻辑根本不符合规范。屎人屎库屎代码。

找一个匪夷所思的点给你们看看
明明库规范命名是这个,这卖代码的神仙不知道在哪里匪夷所思重定义了一个AIN。给代码可读性增加难度。问题是代码还不全,根本找不到AIN这个是什么意思。我纯靠读源码一步一步才能搞明白这鳖孙要干啥。

img

img

是缺少相应头文件的问题,建议你仔细审查文件路径

解决方法1:
这个解决方法很笨,原来项目里文件包含都使用的绝对路径,你把它改成相对路径就可以了。如果文件数量很多,这将是个大工程。
解决办法2:
编译的时候加上-I选项,后面跟代码所在的根目录。

另外,你是C++编译的,你看下你的引用是否正确
/* libgps.h -- prototypes for internals of the libgps library */

/*

  • This file is Copyright (c) 2010 by the GPSD project

  • SPDX-License-Identifier: BSD-2-clause

*/

#ifndef GPSD_LIBGPS_H

#define GPSD_LIBGPS_H

/* values to poke in the gps_fd member if we get it via something special */

#define SHM_PSEUDO_FD-1

#define DBUS_PSEUDO_FD-2

#include "gps.h"

#include "gpsd_config.h"

#include "compiler.h"

#ifdef __cplusplus

extern "C" {undefined

#endif

extern int gps_sock_open(const char *, const char *,

struct gps_data_t *);

extern int gps_sock_close(struct gps_data_t *);

extern int gps_sock_send(struct gps_data_t *, const char *);

extern int gps_sock_read(struct gps_data_t *, char *message, int message_len);

extern bool gps_sock_waiting(const struct gps_data_t *, int);

extern int gps_sock_stream(struct gps_data_t *, unsigned int, void *);

extern const char *gps_sock_data(const struct gps_data_t *);

extern int gps_sock_mainloop(struct gps_data_t *, int,

void (*)(struct gps_data_t *));

extern int gps_shm_open(struct gps_data_t *);

extern void gps_shm_close(struct gps_data_t *);

extern bool gps_shm_waiting(const struct gps_data_t *, int);

extern int gps_shm_read(struct gps_data_t *);

extern int gps_shm_mainloop(struct gps_data_t *, int,

void (*)(struct gps_data_t *));

extern int gps_dbus_open(struct gps_data_t *);

extern int gps_dbus_mainloop(struct gps_data_t *, int,

void (*)(struct gps_data_t *));

extern int json_ais_read(const char *, char *, size_t, struct ais_t *,

const char **);

/* debugging apparatus for the client library */

#ifdef CLIENTDEBUG_ENABLE

#define LIBGPS_DEBUG

#endif /* CLIENTDEBUG_ENABLE */

#ifdef LIBGPS_DEBUG

#define DEBUG_CALLS1/* shallowest debug level */

#define DEBUG_JSON5/* minimum level for verbose JSON debugging */

define libgps_debug_trace(args) (void) libgps_trace args

extern int libgps_debuglevel;

extern void libgps_dump_state(struct gps_data_t *);

#else

define libgps_debug_trace(args) do { } while (0)

#endif /* LIBGPS_DEBUG */

#ifdef __cplusplus

}

#endif

#define PRIVATE(gpsdata) ((struct privdata_t *)(gpsdata)->privdata)

#endif /* GPSD_LIBGPS_H */