У меня проблема с файлами, которые я создал с помощью Python.У меня есть некоторые файлы (.sh-файлы), которые я хочу создавать динамически.Сами файлы могут быть выполнены правильно и делать то, что они должны.
Сгенерированные Python файлы, однако, являются ИДЕНТИЧНЫМИ, команда diff
в Linux имеет пустой результат!Но когда я выполняю сгенерированные скрипты .sh, они выдают мне случайные ошибки.
Вот мой обычный файл (например):
OBJDUMP=`which riscv32-unknown-elf-objdump`
OBJCOPY=`which riscv32-unknown-elf-objcopy`
COMPILER=`which riscv32-unknown-elf-gcc`
RANLIB=`which riscv32-unknown-elf-ranlib`
VSIM=`which vsim`
echo $VSIM
TARGET_C_FLAGS="-O3 -m32 -g"
#TARGET_C_FLAGS="-O2 -g -falign-functions=16 -funroll-all-loops"
# if you want to have compressed instructions, set this to 1
RVC=0
# if you are using zero-riscy, set this to 1, otherwise it uses RISCY
USE_ZERO_RISCY=0
# set this to 1 if you are using the Floating Point extensions for riscy only
RISCY_RV32F=0
# zeroriscy with the multiplier
ZERO_RV32M=0
# zeroriscy with only 16 registers
ZERO_RV32E=0
# riscy with PULPextensions, it is assumed you use the ETH GCC Compiler
GCC_MARCH="IMXpulpv2"
#compile arduino lib
ARDUINO_LIB=1
PULP_GIT_DIRECTORY=../../
SIM_DIRECTORY="$PULP_GIT_DIRECTORY/vsim"
#insert here your post-layout netlist if you are using IMPERIO
PL_NETLIST=""
cmake "$PULP_GIT_DIRECTORY"/sw/ \
-DPULP_MODELSIM_DIRECTORY="$SIM_DIRECTORY" \
-DCMAKE_C_COMPILER="$COMPILER" \
-DVSIM="$VSIM" \
-DRVC="$RVC" \
-DRISCY_RV32F="$RISCY_RV32F" \
-DUSE_ZERO_RISCY="$USE_ZERO_RISCY" \
-DZERO_RV32M="$ZERO_RV32M" \
-DZERO_RV32E="$ZERO_RV32E" \
-DGCC_MARCH="$GCC_MARCH" \
-DARDUINO_LIB="$ARDUINO_LIB" \
-DPL_NETLIST="$PL_NETLIST" \
-DCMAKE_C_FLAGS="$TARGET_C_FLAGS" \
-DCMAKE_OBJCOPY="$OBJCOPY" \
-DCMAKE_OBJDUMP="$OBJDUMP"
А вот генерируемый питоном один.
OBJDUMP=`which riscv32-unknown-elf-objdump`
OBJCOPY=`which riscv32-unknown-elf-objcopy`
COMPILER=`which riscv32-unknown-elf-gcc`
RANLIB=`which riscv32-unknown-elf-ranlib`
VSIM=`which vsim`
TARGET_C_FLAGS="-O3 -m32 -g"
RVC=0
USE_ZERO_RISCY=0
RISCY_RV32F=0
ZERO_RV32M=0
ZERO_RV32E=0
GCC_MARCH="IMXpulpv2"
ARDUINO_LIB=1
PULP_GIT_DIRECTORY=../../
SIM_DIRECTORY="$PULP_GIT_DIRECTORY/vsim"
PL_NETLIST=""
cmake "$PULP_GIT_DIRECTORY"/sw/ \
-DPULP_MODELSIM_DIRECTORY="$SIM_DIRECTORY" \
-DCMAKE_C_COMPILER="$COMPILER" \
-DVSIM="$VSIM" \
-DRVC="$RVC" \
-DRISCY_RV32F="$RISCY_RV32F" \
-DUSE_ZERO_RISCY="$USE_ZERO_RISCY" \
-DZERO_RV32M="$ZERO_RV32M" \
-DZERO_RV32E="$ZERO_RV32E" \
-DGCC_MARCH="$GCC_MARCH" \
-DARDUINO_LIB="$ARDUINO_LIB" \
-DPL_NETLIST="$PL_NETLIST" \
-DCMAKE_C_FLAGS="$TARGET_C_FLAGS" \
-DCMAKE_OBJCOPY="$OBJCOPY" \
-DCMAKE_OBJDUMP="$OBJDUMP"
Я не знаю, насколько это вам поможет.Но так оно и есть.
Теперь я выполняю эти скрипты с ./script
, и первый скрипт выполняется.Второй дает мне ошибку:
CMake Error: The source directory "../sw/build/ " does not exist.
И путь, в котором находится скрипт, в точности ../sw/build/
Что здесь происходит?