在工程里新建一个目录,并在此目录下再新建3个子目录,在子目录里分别添加.h头文件和.c文件,在main.c当中包含自建.h头文件,但.h文件中自定义的函数无法识别,编译出错。

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

在工程里新建一个目录,并在此目录下再新建3个子目录,在子目录里分别添加.h头文件和.c文件,在main.c当中包含自建.h头文件,但.h文件中自定义的函数无法识别,编译出错。

Jump to solution
4,708 Views
wangjun2018
Contributor I

2.jpg1.jpg3.jpg4.jpg5.jpg

0 Kudos
1 Solution
3,672 Views
kerryzhou
NXP TechSupport
NXP TechSupport

Hi Wang,

    楼主你好!

    从你的问题看下来,应该是因为你没有把头文件的路径添加进去。

    你仔细检查下,报错的各条,都已经在你头文件里有了,然后你去properties里面的路径下,把头文件的路径都添加进去。

    添加之后,再重新编译下。

  如果还有问题,欢迎继续交流。


Have a great day,
Kerry

-----------------------------------------------------------------------------------------------------------------------
Note: If this post answers your question, please click the Correct Answer button. Thank you!
-----------------------------------------------------------------------------------------------------------------------

View solution in original post

0 Kudos
10 Replies
3,672 Views
kerryzhou
NXP TechSupport
NXP TechSupport

给你贴个图参考参考:

pastedImage_1.png


Have a great day,
Kerry

-----------------------------------------------------------------------------------------------------------------------
Note: If this post answers your question, please click the Correct Answer button. Thank you!
-----------------------------------------------------------------------------------------------------------------------

0 Kudos
3,672 Views
wangjun2008
Contributor I

你好,我将工程打包放在附件当中,有空可以帮我看一下问题在哪时吗?谢谢了。

0 Kudos
3,673 Views
kerryzhou
NXP TechSupport
NXP TechSupport

Hi Wang,

    楼主你好!

    从你的问题看下来,应该是因为你没有把头文件的路径添加进去。

    你仔细检查下,报错的各条,都已经在你头文件里有了,然后你去properties里面的路径下,把头文件的路径都添加进去。

    添加之后,再重新编译下。

  如果还有问题,欢迎继续交流。


Have a great day,
Kerry

-----------------------------------------------------------------------------------------------------------------------
Note: If this post answers your question, please click the Correct Answer button. Thank you!
-----------------------------------------------------------------------------------------------------------------------

0 Kudos
3,672 Views
wangjun2018
Contributor I

Dear:

您好!首先非常感谢您的解答.我在这里按您提示的那样进行设置,编译后还是报错.现在的问题是,所有包含的.h头文件已经使用全路径的形式,编译后,通

过追踪可以看到,.h头文件当中的声明是可以追踪到的.但从.h头文件中再追踪就无法追踪了,如我在.h文件当中声明一个:extern U16

gu16_Cnt0;就报错无法再进行追踪了.但如果.h文件当中使用定义U16 gu16_Cnt0;,则关于gu16_Cnt0的报错全消失.目前有工程

师给我说,可能是开发环境的问题.

王钧

2018-08-30

0 Kudos
3,672 Views
kerryzhou
NXP TechSupport
NXP TechSupport

你MCUXpresso IDE的版本用的是多少,我明天帮你看下工程。

3,672 Views
wangjun2018
Contributor I

你好,非常感谢你的指点和帮助。目前这个问题已经解决了。原因有2点,一是自建的.C文件路径要加入工程当中。二是所有自建文件的后缀使用小写,GCC不能识别大写后缀。再次感谢!

0 Kudos
3,672 Views
kerryzhou
NXP TechSupport
NXP TechSupport

好的,感谢你的信息更新。

后续有问题,欢迎继续发帖交流!


Have a great day,
Kerry

-----------------------------------------------------------------------------------------------------------------------
Note: If this post answers your question, please click the Correct Answer button. Thank you!
-----------------------------------------------------------------------------------------------------------------------

0 Kudos
3,672 Views
wangjun2008
Contributor I

你好,我将我的工程包放在了附件当中,有空方便的话,可以帮我运行一下,看看问题在哪里吗?谢谢了。

0 Kudos
3,672 Views
wangjun2018
Contributor I

您好,再次感谢您的回复。我的版本应该是最新的。见下图: 另外,可不可以给我一个邮箱,我把工程打包通过邮箱传给您,请您帮我看一下工程。先谢谢了。

3.jpg

0 Kudos
3,672 Views
wangjun2008
Contributor I

手工按您的提示位置加上目录路径,依然不行.另外,我在.C当中已经手工完整的加入的.h文件的路径,编译之后,利用F3来进行跟踪来看,.h头文件是完全可以追踪到的.但在.h当中再追踪定义的全局变量和自定义的函数时,是无法跳转的.请看下图红色标识. 如果在FRAMEWORK.H当中,定义全局变量,即U16 gu16_Cnt0=0x0000;则关于gu16_Cnt0的错误会消失.目前主要问题集中在新建目录下的.c文件中的变量和函数无法链接,或是找不到C定义的变量和函数,若在.h头文件当中进行定义而不是声明,则错误会消失.1.jpg2.jpg3.jpg4.jpg5.jpg

0 Kudos