所以我有一个在C ++程序中使用的函数my_func。我以为我知道从哪里导入它,但修改(我认为是)源文件中的函数并没有导致我的C ++程序的任何运行时更改。这让我觉得这个函数可能是从我不知道的其他地方导入的。我有可能找出从哪里导入my_func吗?
答案 0 :(得分:0)
最简单的方法是不要链接提供它的东西。这将为编译器提供有关未找到项目的诊断,以及文件的一些概念(以及它所需的功能)。
答案 1 :(得分:0)
1 /具有relunctant功能的源文件是同一个可执行文件的一部分,还是它是dll的一部分? 如果它是一个DLL,一个非常常见的错误是编译和链接没有问题,但实际复制文件不起作用,因为dll已被使用。或者您已经在另一种模式下编译和链接(发布与调试,32与64 ...)。
2 / grep&等基本工具在linux下找到你的朋友: 找 。 -name'* .hpp'-print0 | xargs -0 grep -n'my_func'
即使在非常大的代码基础上(2百万行或更多),这也不应超过分钟
3 /在visual studio上,您可以缩小搜索包含标题的范围,使用选项/ showIncludes列出您的cpp文件:它以递归方式列出所有包含标题。您的my_func必须在其中一个标题中声明