Linux出现编译错误:找不到那个文件或目录

在Linux上编译C++时出现如下错误:

img

按照网上的教程,是由于找不到头文件所致;但是我用了-I指令后仍然提示相同的错误信息。

这是文件目录

img

另外有个问题:由于这是我在github上下的源代码,它本身已经提供了编译的方法(用gmake rs指令),如果我想要debug的话,是否能够在它已经编译成功的基础上进行呢?求指点

是不是运行环境没有设置好 在仔细检查检查
https://blog.csdn.net/weixin_42373488/article/details/127592373?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522169051596516782425135236%2522%252C%2522scm%2522%253A%252220140713.130102334.pc%255Fall.%2522%257D&request_id=169051596516782425135236&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~all~first_rank_ecpm_v1~rank_v31_ecpm-2-127592373-null-null.142^v91^insertT0,239^v3^control&utm_term=C%2B%2B%E4%BB%A3%E7%A0%81%E8%BF%90%E8%A1%8C%E7%9A%84%E7%8E%AF%E5%A2%83%E9%85%8D%E7%BD%AE&spm=1018.2226.3001.4187

img

不知道你这个问题是否已经解决, 如果还没有解决的话:
  • 以下回答由chatgpt基于相关博客总结生成:

    解决方案:

    该错误提示显示在编译时找不到libary/libname.a这个文件或目录。这可能是因为编译器无法找到并链接所需的库文件。

    要解决这个问题,可以按照以下步骤进行操作:

    步骤 1:确认库文件存在

    首先,确保你的库文件libary/libname.a确实存在于你的文件目录结构中。你可以使用ls命令来检查。

    在终端中执行以下命令:

    ls libary/libname.a
    

    如果该命令没有找到库文件,则表示文件不存在或路径不正确。请在终端中浏览到正确的路径,并使用ls命令确认库文件是否存在。

    步骤 2:添加库文件路径

    如果库文件存在,但编译器仍然找不到它,请尝试添加正确的库文件路径。

    使用-L标志来指定库文件的路径。例如:

    g++ -o outputfile main.cpp -L/path/to/library -lname
    

    其中,/path/to/library是包含库文件的目录,并且libname.a是你要链接的库文件。

    请确保你正确地使用了-L选项,并提供了库文件的绝对路径。

    步骤 3:添加头文件路径

    如果你的代码中使用了自定义的头文件,并且编译器无法找到这些头文件,请使用-I标志来指定头文件的路径。

    使用以下命令:

    g++ -o outputfile main.cpp -I/path/to/headers
    

    其中,/path/to/headers是包含头文件的目录。

    请确保你正确地使用了-I选项,并提供了头文件的绝对路径。

    步骤 4:检查源代码中的库文件和头文件引用

    如果以上步骤都没有解决问题,还有可能是你的源代码中的库文件或头文件引用不正确。

    请检查你的源代码文件,确保正确引用了库文件并包含了正确的头文件。可能需要编辑代码文件以更正错误的引用。

    调试说明:

    如果你想在已经成功编译的基础上进行调试,可以按照以下步骤操作:

    1. 确保你在编译代码时使用了调试选项-g。例如: g++ -g -o outputfile main.cpp

    2. 使用调试器(例如gdb)来启动你的可执行程序并进行调试。

    在终端中执行以下命令启动调试器: gdb outputfile

    1. 在调试器中,你可以设置断点、运行程序、查看变量值、执行步骤等。

    例如,可以使用break命令设置断点: break line_number 其中,line_number是你要设置断点的代码行号。

    1. 使用调试器的命令来进行调试。

    你可以使用以下命令进行调试: - run:运行程序。 - next:执行下一行。 - step:进入函数调用。 - print variable_name:打印变量的值。 - continue:继续执行程序。 - quit:退出调试器。

    1. 调试完成后,使用quit命令退出调试器。

    希望以上解决方案可以帮助你解决问题。如果问题仍然存在或有其他问题,请随时追问。


如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^