比如我在IDE浏览C库中floor()的定义,使用转到定义,在_Check_return_ _ACRTIMP double __cdecl floor(_In_ double _X); 这里我就找不到后面的代码定义了,是我操作错误了吗? 请问:编译器是如何实现寻找代码的定义的?它是不是只能寻找添加到工程的定义函数,而不能寻找封装的库?如果要阅读源代码需要自己去根目录找对应头文件阅读吗?
在_Check_return_ ACRTIMP double __cdecl floor(_In double _X); 这里我就找不到后面的代码定义了,是我操作错误了吗? 你找不到是因为没有把C库代码加入到你的IDE工程... 编译器是如何实现寻找代码的定义的 注意区分编辑器(比如你的IDE)和编译器(如gcc)。编辑器找代码定义显然是软件自己的功能,需要你将函数定义的文件加入到你的IDE工程..比如你讲C库文件添加到工程就能找到了 编译器压根不需要找到C库代码的定义,它只需要在链接(ld)时,找到libc.so就行了,libc.so有这些函数的符号。 如果要阅读源代码需要自己去根目录找对应头文件阅读吗? 需要
你找不到是因为没有把C库代码加入到你的IDE工程...
注意区分编辑器(比如你的IDE)和编译器(如gcc)。编辑器找代码定义显然是软件自己的功能,需要你将函数定义的文件加入到你的IDE工程..比如你讲C库文件添加到工程就能找到了
编译器压根不需要找到C库代码的定义,它只需要在链接(ld)时,找到
libc.so
就行了,libc.so
有这些函数的符号。需要