gpt4 book ai didi

c++ - 如何为相同的预处理程序变量编译C++

转载 作者:行者123 更新时间:2023-12-02 10:56:41 24 4
gpt4 key购买 nike

在main.c++中,我定义了几个预处理器变量。

#ifndef FIRST
#define FIRST "./path/for/output/files"
#endif
#ifndef SECOND
#define SECOND 0.0125
#endif
#ifndef THIRD
#define THIRD "./input_file.mesh"
#endif

我必须通过更改三个预处理器宏来编译此.cpp。为此,我尝试制作一个带for循环的bash文件,以更改这些宏采用的值,即:
#!/bin/bash

for i in *.mesh
do
g++ -Ofast -fopenmp main.cpp eig3.cpp vema.cpp -o main10 -DFIRST=\"\.\/$i\" -DSECOND=0.0125 -DTHIRD=\'\"\.\/$i\"\'
done

此循环不断报告错误,它无法识别输入文件,输出文件夹也不会。我想我犯了很多错误,我是C++的新手,但我仍然有些失落。

我想知道是否有可能用每个参数的许多不同值来编译此代码。谢谢!

最佳答案

如果真的是不想这么多更改程序,请按如下所示编译一次:

g++ -Ofast -fopenmp main.cpp eig3.cpp vema.cpp -o main10 -DFIRST='getenv("OUTPUT")' -DSECOND=0.0125 -DTHIRD='getenv("INPUT")'

并如下调用:
for i in *.mesh; do
INPUT=./$i OUTPUT=./path/for/output/files ./main10
done

关于c++ - 如何为相同的预处理程序变量编译C++,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61454690/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com