我一直在使用 Code::Blocks 编写一些代码,并使用 cbp2make 生成一个可以用 编译的 makefile g++
。我运行它make
,并在“obj/Release”和“obj/Debug”文件夹中获得了 makefile 承诺的所有“.o”文件,就像我在 Code::Blocks 中编译一样。问题来了:我无法运行我的代码。
如果我做:
~/<path>/obj/Release$: ./main.o
我得到:
bash: ./main.o: Permission denied
。
我尝试过chmod 744 ./main.o
、chmod 755 ./main.o
和chmod 777 ./main.o
。我还尝试过不使用./
,用sudo chmod
,并且还尝试过7--
用+x
all 替换 ,只是为了绝望。这些将 的输出更改./main.o
为:
bash: ./main.o: cannot execute binary file: Exec format error
供参考:ls -l main.o
返回:
-rw-r--r-- 1 jiggly jiggly 661344 Sep 8 16:51 main.o
什么也没做之后
-rwxr -xr -x 1 jiggly jiggly 661344 Sep 8 16:51 main.o
做完后chmod 744
-rwxr-xr-x 1 jiggly jiggly 661344 Sep 8 16:51 main.o
做完后chmod 755
-rwxrwxrwx 1 jiggly jiggly 661344 Sep 8 16:51 main.o
做完后chmod 777
至少工作是这样的chmod
;)
另外,file main.o
返回main.o: ELF 64-bit LSB relocatable, x86-64, version1 (SYSV), not stripped
。我至少知道我的系统是“x86-64”,但也许我在这里遗漏了一些信息?
显然,我遇到的最重要的问题是我的代码无法运行(在 Code::Blocks 之外),而我需要它运行。如果能得到任何帮助,我将不胜感激。此外,我不知道为什么会出现权限和格式错误。如果我错过了一些显而易见的东西,我会很高兴,但任何解决方案都会很有帮助和教育意义。