首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >精简Linux C++ CLI应用程序的开发过程

精简Linux C++ CLI应用程序的开发过程
EN

Software Engineering用户
提问于 2019-03-02 07:53:57
回答 1查看 164关注 0票数 0

使用C++编译器版本的Linux 19:g++-8 (...) 8.2.0

我正在编译和运行我的项目名为getPixelColor

使用shell脚本:

代码语言:javascript
复制
#!/bin/sh
g++-8 -std=c++17 -Wall -Wextra -Werror -Wpedantic -pedantic-errors -o getPixelColor getPixelColor.cpp -lX11 && ./getPixelColor "${@}"

最后,我定义了一个个人别名:

代码语言:javascript
复制
alias work-pixel='watch -n 1 /home/vlastimil/Development/getPixelColor/cpp/compileRun 0 0'

并在代码中进行如下操作:

问题

我是将发展过程精简至100%,还是仍有改善的空间?

EN

回答 1

Software Engineering用户

回答已采纳

发布于 2019-03-02 09:38:14

多亏了GrandmasterB,我意识到对于C++项目来说,添加Makefile使事情变得更加简单和简化是很普通的。

Makefile

这对我来说是很新鲜的。我喜欢那里的事情变得依赖的方式。真是太棒了。

代码语言:javascript
复制
COORDS ?= 0 0

CXX := g++-8
CXXFLAGS := -std=c++17 -Wall -Wextra -Werror -Wpedantic -pedantic-errors
LDLIBS := -lX11
RM := rm -f

BIN := getPixelColor
SRC := $(BIN).cpp

$(BIN): $(SRC)
    $(CXX) $(CXXFLAGS) $(SRC) -o $(BIN) $(LDLIBS)

.PHONY: clean
clean:
    $(RM) $(BIN)

.PHONY: run
run: $(BIN)
    ./$(BIN) $(COORDS)

compileRun (POSIX脚本)

此文件用于无限循环的常量(编译和)运行with信号故障保险。可以任意给定X,Y坐标。

代码语言:javascript
复制
#!/bin/sh

set -o nounset

trap 'cleanup' HUP INT QUIT ABRT TERM

cleanup()
{
    printf '\n%s\n' 'Cleaning up... Exiting.' 1>&2
    make -s clean
    exit 1
}

while true
do
    clear
    make -s clean

    if [ "${#}" -eq 2 ]
    then
        COORDS="${*}" make run
    else
        make run
    fi

    sleep 5s
done

现在看起来更整洁了。谢谢你的指导!

票数 1
EN
页面原文内容由Software Engineering提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://softwareengineering.stackexchange.com/questions/387914

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档