用于编译和运行C++的bash脚本

use*_*452 3 c++ bash makefile

我正在尝试进入C++,但是因为必须使用冗长的命令在命令行中运行而烦恼所以我想制作一个bash脚本来简化流程并运行这些命令

#!/bin/bash
if [ "$1" == "start" ]; then
    cd CCPP
    cd HelloWorld
    g++ -Wall -W -Werror main.cpp -o HelloWorldCPP
    ./HelloWorldCPP
Run Code Online (Sandbox Code Playgroud)

但我以前从未使用过bash,而是从别人的代码中将它们一起攻击.它不起作用,但我不知道为什么我不够了解.

lpa*_*app 6

fi最后遗失了,但你也可以写一个这样的GNU Makefile:

CXX=g++
CXXFLAGS=-Wall
OBJS=main.o
EXECUTABLE=main

all: $(EXECUTABLE)

$(EXECUTABLE): $(OBJS)
        $(CXX) $(CXXFLAGS) $(OBJS) -o $@


clean:
        rm -f $(EXECUTABLE)
        rm -f $(OBJS)

main.o: main.cpp
Run Code Online (Sandbox Code Playgroud)

请注意,这是一个灵活的示例,您可以进一步简化此操作.在这里,您可以找到一个非常好的教程来阅读:

http://mrbook.org/tutorials/make/

但是,我强烈建议学习cmake,因为手动编写Makefile是痛苦的.

CMakeLists.txt文件可能是这样的:

add_executable(main main.cpp)
Run Code Online (Sandbox Code Playgroud)

那简单地说:

mkdir -p build && cd build && cmake ../ && make VERBOSE=1
Run Code Online (Sandbox Code Playgroud)

然后你将以跨平台的方式完成,因为GNU Makefiles仅适用于Unices.您需要针对Windows等进行调整才能使其正常工作.cmake几乎可以在任何需要的地方免费使用,它对本机构建,交叉编译有适当的支持.

这个论坛还有一个cmake标签,周围有几个人来帮助你.