首页
学习
活动
专区
工具
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) 嵌套执行 大型项目中所有的源代码不可能放到一个目录下,一般模块化代码是分开,有生成目录,有生成最终可执行文件目录,有进行测试目录等...,这样结构代码清晰易维护。

94410

执行 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.5K40

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

所以,可以手动把头文件内容搬到源文件,然后删掉头文件,如下图: 理论上是这样,而且理论上行得通。但操作起来可不现实,比如,你确定要把下面两个文件搬到源文件中吗?...所以可以认为“没有预处理过程”(实际上是有的,因为预处理过程还负责生成行号等等职责)。 那是编译过程出错吗?...那还是加上声明吧,然后单独编译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++

1.8K10

重新编译运行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.5K20

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.6K20

手把手教你写一个 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会在当前目录下找到名字为Makefilemakefile文件,程序就会自动运行,产生相应中间文件和可执行文件 a....,可执行文件放到可执行目录下,分类目录如下图: bin目录:放可执行文件 include目录:放头文件 obj目录:放中间目标文件 src目录:放源文件 可见原来那些文件都不在同一目录下了,那么这时候如果还用之前...执行make后结果: make执行后bin目录里面已经生成了可执行文件main,obj目录里面已经生成了中间目标文件 main.o、openFile.o、readFile.o、writeFile.o

1.5K10

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

构建protobuf-c 注意如果在构建protobuf-c之前没有安装protobuf的话,生成protobuf-cconfigure文件肯定会报如下错误!!.../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文件重新生产对应文件,重新编译即可

6.7K30

Linux静态库与动态库实例详解

<<endl; } 然后编译: 1. gcc -c test.c //生成目标文件 2. ar crv libtest.a test.o //生成静态链接库libtest.a 3. g++...然后编译: 1. g++ -fPIC -shared -o libtest.so test.c //生成动态链接库libtest.so 2. g++ -o main main.c -ltest...这就是最典型 undefined reference 错误,因为在链接时发现找不到某个函数实现文件, 本例中test.o文件中包含了test()函数实现,所以如果按下面这种方式链接就没事了。...1. gcc -o main main.o test.o 【扩展】:其实上面为了让大家更加清楚底层原因,我把编译链接分开了,下面这样编译 也会报undefined reference错,其实底层原因与上面是一样...,需要注意库之间依赖顺序,依赖其他库 库一定要放到被依赖库前面,这样才能真正避免undefined reference错误,完成编译链接。

4.9K31

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命令(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.2K01
领券