用Xcode编写的C++程序为Linux制作文件
Makefile for Linux from Xcode-written C++ program
我在Xcode上写了一个简单的c++程序,所有程序都包含在一个名为huffmanGenerator.cpp的文件中。该程序从用户计算机上的文件中读取输入,并将输出写入保存到他们计算机上的文件中。
讲师要求我们创建一个makefile,以便我们的程序在Linux中使用g++或gcc编译和运行;然而,她从未向我们展示过如何做到这一点,当全班同学寻求帮助时,她的回答是我们可以解决。
我在网上找到了很多链接,但它们都很令人困惑,因为这对我来说都是新的,而且大多数链接甚至无法回答最基本的问题,比如makefile应该是什么样的文件?它是.txt吗?我应该把一个字存起来吗?
请帮忙做教练不会做的事,启发我。谢谢!
makefile应该是什么类型的文件?
它应该是一个名为Makefile
或makefile
的明文文件。名称之所以重要,是因为当您运行make
命令时,它会在默认情况下查找具有此名称的文件,以了解如何编译代码。您也可以随心所欲地命名它,只要在运行时指定名称即可(使-f文件名)。
它是.txt吗?
不,它没有扩展名。扩展在*nix中没有那么大意义。
我应该把一个字存起来吗?(假设你指的是Microsoft Word。)
不,绝对不是。空白(制表符/空格/新行)在这些文件中有意义,所以你应该使用一个不会为文件添加格式的编辑器。像pico/vi/等。
这里有一个makefile的例子,我认为它符合您的要求。
# You can change your compiler to gcc / g++ here.
CC=g++
# Add whatever flags you want to use here.
CFLAGS=-c -Wall
all:
$(CC) $(CFLAGS) huffmanGenerator.cpp -o huffmanGenerator
#Use something like this to run `make clean` which deletes your object files, so you can do a fresh compile.
#clean:
# rm -rf *o huffmanGenerator
顺便说一句,如果你不责怪你的教授没有为你把所有的东西都拼出来,那你会很好的。当你毕业的时候,你通常会得到一些任务,除了一系列要求和最后期限之外,没有其他方向。你需要弄清楚。您可以通过访问轻松地制作此make文件http://mrbook.org/tutorials/make/(在谷歌上搜索"makefile教程")。
makefile应该被称为makefile。它只是一个文本文件。
你需要一个文本编辑器。有很多可供选择,vim,emacs,nano,pico。。。,等
打开命令行并运行,比如
$ pico Makefile
然后输入Makefile 的内容
all:
g++ -o huffmanGenerator huffmanGenerator.cpp
保存并退出并运行make
$ make
- 找不到Linux Visual Studio代码C++文件
- 在Linux上使用Clang / OLLVM交叉编译helloworld Windows可执行文件时的问题
- 共享库 (.so) 没有扩展名的 Linux 可执行文件之间的区别?
- 如何在 linux 可执行文件中使用静态库
- Linux 可执行文件通过 dlopen 在emplace_back崩溃打开共享库
- 无法在 Linux 上运行C++ ZMQ 项目的可执行文件
- 如何使用 C/C++ 和 system() 系统调用以外的其他方法在 Linux 中获取文件功能?
- 在字符串中引用 Linux 用户名以打开文件
- Linux 源代码中普通磁盘文件的"轮询"功能在哪里实现?
- 如何在 Linux 中从 .so 文件打开可执行文件?
- 在 Linux 上没有 /proc/self/exe 的 C/C++ 运行时可执行文件的大小?
- 如何在 Linux 下使用 c++ 知道文件是否被其他进程使用?
- 如何用.so文件linux打包所有需要的库
- 在Linux Mint 19下,从哪里提取wxWidgets的源代码(.cpp文件)用于步骤内部调试
- 在 Linux 上,目标文件比在 macOS 或 Windows 上大 2.5 倍
- 在Windows上运行Linux Makefile(.so文件)
- 我可以在Windows(Visual C++)中读取bin文件,但不能在linux(GCC)上读取bin文件
- C++ 可执行文件在运行时找不到库,即使它在 /usr/lib 中(在 Linux 上)
- 没有内核的 Linux 文件系统
- 从开发人员的角度来看Linux文件夹结构