gpt4 book ai didi

c++ - 从 shell 脚本运行 c 脚本

转载 作者:太空宇宙 更新时间:2023-11-04 02:05:15 24 4
gpt4 key购买 nike

我有这个shell脚本

#!/bin/csh
@ x = 1
while ($x <= 2)
nohup ./prog1 && ./prog2 &
@ x ++
end

我想连续运行 2 次 prog1 和 prog2,它们之前是通过 makefile 编译的。我该怎么做?剧本对不对?

如果我这样做

chmod u+x test.csh
./test.csh

我收到这个错误

./prog1: /usr/lib64/libstdc++.so.6: version `GLIBCXX_3.4.11' not found (required by ./prog1)

这是我的生成文件

GSLFLAGS := `pkg-config --cflags gsl`  
LIBGSL := `pkg-config --libs gsl`
CFLAGS = -O3 -fopenmp
LIBOMP = -lgomp

dist.o:dist.cxx
g++ -Wall -c dist.cxx

prog1.o:prog1.cxx
g++ -Wall -c prog1.cxx $< ${GSLFLAGS} ${CFLAGS}

prog1:prog1.o dist.o
g++ ${CFLAGS} -o $@ $^ ${LIBGSL}

prog2.o:prog2.cxx
g++ -Wall -c prog2.cxx $< ${GSLFLAGS} ${CFLAGS}

prog2:prog2.o dist.o
g++ ${CFLAGS} -o $@ $^ ${LIBGSL}

最佳答案

标准 C++ 库的搜索路径在 csh 中的设置与从命令行运行时不同。

Linking the standard libraries statically应该使库搜索路径无关紧要:按如下方式更改您的 makefile:

CFLAGS = -O3 -fopenmp -static-libgcc -static-libstdc++

关于c++ - 从 shell 脚本运行 c 脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21484526/

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