首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

生成错误:“g++:error: bin/main.o:没有这样的文件或目录”

生成错误:“g++:error: bin/main.o:没有这样的文件或目录”

这个错误是由于编译器无法找到指定的文件或目录而导致的。具体来说,编译器在链接阶段时无法找到名为"bin/main.o"的文件或目录。

解决这个问题的方法有以下几种:

  1. 检查文件路径:首先,确保文件"main.o"存在于正确的位置。检查路径是否正确,包括文件名的大小写和文件的实际存在性。
  2. 重新编译源代码:如果文件确实存在于正确的位置,可能是由于编译过程中出现了错误。尝试重新编译源代码,确保所有的源文件都被正确编译,并且生成了正确的目标文件。
  3. 检查编译命令:检查编译命令是否正确。确保编译命令中指定了正确的源文件和目标文件路径。如果使用了Makefile或其他构建工具,确保配置文件中的路径设置正确。
  4. 检查编译选项:检查编译选项是否正确。有时候,编译选项可能会导致编译器无法找到目标文件。确保编译选项中包含了正确的目标文件路径。
  5. 检查编译环境:检查编译环境是否正确配置。确保编译器和相关工具链已正确安装,并且环境变量设置正确。

总结: 生成错误:“g++:error: bin/main.o:没有这样的文件或目录”是由于编译器无法找到指定的文件或目录而导致的。解决方法包括检查文件路径、重新编译源代码、检查编译命令、检查编译选项和检查编译环境。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

  • Makefile总结

    ,编译过程会判断文件是否有过修改,只对修改的文件重新编译生成目标文件,不仅提高了效率,还减少了出错。...进行修改: CC = g++ BIN = helloworld OBJ = main.o test.o $(BIN): $(OBJ) $(CC) $(OBJ) -o $(BIN) main.o...并没有执行删除操作。 这种情况可以使用伪目标来解决,可避免在makefile中定义的执行命令目标和当前目录下实际文件名冲突。 一旦定义为伪目标,make执行规则不会去查找隐含规则,同样也提高了效率。...clean: $(RM) $(OBJ) $(BIN) 嵌套执行 大型项目中所有的源代码不可能放到一个目录下,一般模块化的代码是分开的,有生成库的目录,有生成最终可执行文件的目录,有进行测试的目录等...,这样的结构代码清晰易维护。

    97510

    执行 pip list有关 “解释器错误: 没有那个文件或目录” 的解决办法(亲测有效)

    目录 1 问题 2 解决 1 问题 我们安装了Python环境,或者是将A 电脑的Python环境,直接移到B 电脑,并且配置了Python的环境变量,但是执行Python是可以有提示,就是执行pip...list 的时候,提示“解释器错误: 没有那个文件或目录” 的解决办法 我的步骤 (root) ges@gpu-1:~$ pip install prepro 报错 -bash: /home/ges/anaconda3.../envs/ges/bin/pip: /home/zxs/anaconda3/envs/ges/bin/python: 解释器错误: 没有那个文件或目录 2 解决 那就先进入/home/ges/anaconda3.../envs/ges/bin/pip,一般人都会先使用cd命令,但是会报错: 那么它就是一个文件,比较推荐的一种打开文件的好方法是用nano 路径: nano界面编辑十分友好,师弟推荐的,新手用着确实比...是 Unix/Linux 里面用于指示脚本解释器的特定语法,位于脚本中的第一行,以 #! 开头,接着是该脚本的解释器,通常是 /bin/bash、/usr/bin/python 之类

    2.9K40

    头文件是必须的吗?跟一跟编译过程~~~

    所以,可以手动把头文件中的内容搬到源文件,然后删掉头文件,如下图: 理论上是这样的,而且理论上行得通。但操作起来可不现实,比如,你确定要把下面两个文件搬到源文件中吗?...所以可以认为“没有预处理过程”(实际上是有的,因为预处理过程还负责生成行号等等职责)。 那是编译过程出的错吗?...那还是加上声明吧,然后单独编译main.cpp: 可以看到,编译成功了,生成了main.s汇编文件。 汇编也成功了,生成了目标文件main.o。...上面的ld是链接器,是一个可执行程序,它的输入是一个或多个目标文件,如上面指令中的main.o。 也就是说,目标文件main.o中引用了func(),但链接器找不到它的定义。...那不妨我们把func.cpp也编译并生成目标文件func.o,然后链接的时候同main.o一同作为ld的输入: PS F:\Jungle\1.Program\4.C++\4.Compiler> g++

    2.2K10

    重新编译运行C++Cuda混编项目

    由于需要,最近得重新运行一个CUDA项目,但我苦于没有经验,只能从编译开始入门一下,不过还是不算难的,难的是原项目代码不保证质量,而且有若干无关文件,且运行环境未知、各模块的运行版本也不是很清楚,导致搞了一大堆操作...Cmake文件的src文件夹 并生成了Makefile文件,这是我们接下来进行cmake的保证 对于CmakeCache.txt,如果我们要重新cmake,则需要删除之 ?.../bin/main [100%] Built target main 在make(有百分比阶段)完成后,会发现编译完的o文件,被link(链接)完成,最后输出可执行的文件到bin目录,我们进入bin目录运行...Makefile:32: recipe for target 'main.o' failed make: *** [main.o] Error 1 相关链接:Ubuntu中c++项目引用第三方包库的方法...拷贝libglui.a和glui.h到usr相应目录,之后再运行仍然又重复undeclared错误。

    1.6K20

    ubantu16.04搭建Qt环境

    点击蓝字 关注我们 目录 ubantu16.04搭建Qt环境 下载opensource 安装qmake 安装g++以及依赖库 配置环境 编译原码 安装make 查看qmake是否安装 配置环境变量 qmake...make install #安装完毕 这个就很快乐了 查看qmake是否安装 /usr/local/Trolltech/Qt-4.8.7/bin是安装目录 cd /usr/local/Trolltech...,你需要改成上一步记下的路径 source /etc/profile #更新完之后颜色变灰了 cd ~ #回到用户目录 qmake -v #查看版本 QMake version 2.01a Using...# Input SOURCES += main.c 看不懂没关系,下一步生成makefile qmake -makefile 这里生成的makefile比较复杂,就不列举了 ➜ work vim...演示 首先准备一个qt项目,将qt代码中的.h、.cpp、.ui文件移动到Linux下 ➜ work ls main.cpp mainwindow.ui Translate_CN.ts

    2.1K30

    【错误记录】编译 Android 版本的 ijkplayer 报错 ( .init-android.sh: 第 37 行: cd: androidcontrib: 没有那个文件或目录 )

    文章目录 一、报错信息 二、解决方案 一、报错信息 ---- 编译 Android 版本的 ijkplayer 时 , 执行 init-android.sh 脚本 , 报如下错误 ; root@octopus.../init-android.sh: 第 37 行: cd: android/contrib/ffmpeg-x86: 没有那个文件或目录 root@octopus:~/ijkplayer/ijkplayer-android...pull_fork "armv5" pull_fork "armv7a" pull_fork "arm64" pull_fork "x86" pull_fork "x86_64" 上述 shell 脚本中的...pull_fork 方法 , 接收的参数主要是用于创建目录 , 指定目录名称 ; 前面的几个版本的 ffmpeg , 如 : " armv5 " , “armv7a” , “arm64” , “x86”..., 下载检出代码都很成功 , 但是最后的 “x86_64” 版本 , 出现 fatal: unable to access 'https://github.com/Bilibili/FFmpeg.git

    2.7K20

    手把手教你写一个 Makefile 文件

    在链接程序时,链接器会在所有的Object File中找寻函数的实现,如果找不到,那就会报链接错误码(Linker Error),在VC下,这种错误一般是:Link 2001错误,意思是说,链接器未能找到函数的实现...-o main main.o openFile.o readFile.o writeFile.o # 生成main的规则 main.o:main.c # mian.o文件生成所需要的mian.c...编写完成后,执行make命令,make会在当前目录下找到名字为Makefile或makefile的文件,程序就会自动运行,产生相应的中间文件和可执行文件 a....,可执行文件放到可执行目录下,分类目录如下图: bin目录:放可执行文件 include目录:放头文件 obj目录:放中间目标文件 src目录:放源文件 可见原来那些文件都不在同一目录下了,那么这时候如果还用之前的...执行make后的结果: make执行后bin目录里面已经生成了可执行文件main,obj目录里面已经生成了中间目标文件 main.o、openFile.o、readFile.o、writeFile.o

    1.6K10

    Makefile && CMake 简单入门

    ​ 上面版本的问题,就是一个源文件每次我们都要重新去编译,而有可能该源文件本身就没有修改过,所以 最好是生成 .o 文件,这样子只有被修改过的源文件才会重新生成 .o 文件,减少编译的时间,并且这里引入了变量...第三行表示将当前目录中的符合 .cpp 后缀的文件都放到 SRC 变量中;而第四行使用 patsubst 表示将 SRC 变量中的 .cpp 后缀都改为 .o,这样子一来就相当于帮我们处理完了 .o 文件了...它就会执行 cmake 的规则后就会生成 makefile 文件,接着我们执行 make 指令就能创建以下这些文件: ​ 这样子其实直接放在工作目录中是很凌乱的,所以我们不推荐这样子做!...这样子做的好处就是将这些生成文件放到一个文件夹 build 中统一保管,这样子一来看起来整洁,并且删除起来我们只需要删除整个文件夹即可,非常方便! Ⅲ....这样,对于每个源文件,该规则都会生成对应的目标文件,并将其放到指定的目录中。 ​ 因此,第二个 Makefile 的规则更加准确和合理,可以正确地根据每个源文件生成对应的目标文件。

    7510

    protobuf在嵌入式linux下的移植及c语言调用

    构建protobuf-c 注意如果在构建protobuf-c之前没有安装protobuf的话,生成protobuf-c的configure文件肯定会报如下错误!!.../configure了,但是根目录下居然没有configure文件,却有一个autogen.sh,原来是因为protobuf的编译方式做了修改,要执行autogen.sh才会生成configure脚本。.../configure了,但是根目录下居然没有configure文件,却有一个autogen.sh,原来是因为protobuf的编译方式做了修改,要执行autogen.sh才会生成configure脚本。....c和.h文件,protoc-c可执行文件已经预先生成了。...另外protobuf在.proto文件里面指定了具体的位置编号,否则应该就没办法生成.c和.h文件,如果后续双方通讯格式要做调整,双方都使用同一个修改后的.proto文件重新生产对应的源文件,重新编译即可

    7K30

    Linux命令(65)——ld命令

    1.命令简介 ld命令是二进制工具集GNU Binutils的一员,是GNU链接器,用于将目标文件与库链接为可执行程序或库文件。...如果输出格式支持Unix样式的幻数,则将输出标记为"NMAGIC" -noinhibit-exec:生成输出文件,即使出现非致命链接错误。通常,如果链接器在链接过程中遇到错误,它将不会生成输出文件。...给定C++目标文件test.o与main.o,生成可执行文件test.out。...test.o -o test.out 因为生成一个C++可执行文件,需要依赖很多系统库和相关的目标文件,比如C语言库libc.a,所以使用ld进行链接时,需要注意添加较长的命令选项,不然会报链接错误。...使用g++ -v命令可以查看最后一行collect2使用的命令选项,进而了解生成可执行文所需的相关依赖。

    17.7K13

    CMake基础

    g++ -c hello.cpp -o hello.o g++ -c main.cpp -o main.o 其中使用 -c 选项指定生成临时的对象文件 main.o,之后再根据一系列对象文件进行链接,...得到最终的a.out: g++ hello.o main.o -o a.out 三、构建系统Makefile 文件越来越多时,一个个调用g++编译链接会变得很麻烦 于是,发明了 make 这个程序,你只需写出不同文件之间的依赖关系...,有头文件时特别头疼 3.make 的语法非常简单,不像 shell 或 python 可以做很多判断等 4.不同的编译器有不同的 flag 规则,为 g++ 准备的参数可能对 MSVC 不适用...的头文件搜索目录:(其中第一个 hellolib 是库名,第二个是目录) 这样甚至可以用 来引用这个头文件了,因为通过 target_include_directories 指定的路径会被视为与系统路径等价...只需要把他们的 include 目录或头文件下载下来,然后 include_directories(spdlog/include) 即可 缺点:函数直接实现在头文件里,没有提前编译,从而需要重复编译同样内容

    1.9K20

    【一站式解惑】Linux中.a、.so和.o文件以及-I,-L,LIBRARY_PATH,LD_LIBRARY_PATH等

    (4)安装: 拷贝共享库文件到指定的标准的目录,然后运行ldconfig。如果没有权限这样做,那么就只好通过修改环境变量来实现这些函数库的使用了。方法不再说了,很复杂。...或 [zhixa@ess ~test]$ gcc main.o libmyhello.a -o hello , 动态库链接时也可以这样做。...快看看错误提示,原来是找不到动态库文件libmyhello.so。程序在运行时,会在/usr/lib和/lib等目录中查找需要的动态库文件。若找到,则载入动态库,否则将提示类似上述错误而终止程序运行。...这样,加入的目录下的所有库文件都可见。...附: 像下面这样指定路径去链接系统的静态库,会报错说要连接的库找不到: g++ -o main main.cpp -L/usr/lib libpthread.a 必须下面这样才正确: g++ -o main

    5.5K52
    领券