В настоящее время я нахожусь в поиске кросс-компилятора MIPS, работающего в WSL, доступ к которому осуществляется CLion.
Там у меня странная проблема с WSL.Я добавил следующее к .bashrc
:
STAGING_DIR="/home/max/source/staging_dir/toolchain-mipsel_24kc_gcc-5.4.0_musl-1.1.16"
export STAGING_DIR
Более того, у меня есть скрипт test.sh
#!/bin/sh
echo "Staging dir is: " $STAGING_DIR
При использовании wsl
для получения оболочки и выполнения скриптавыходные данные выглядят следующим образом:
max@DESKTOP-ISH7UJQ:/mnt/c/Users/Maxi$ ./test.sh
Staging dir is: /home/max/source/staging_dir/toolchain-mipsel_24kc_gcc-5.4.0_musl-1.1.16
При использовании wsl <command>
для выполнения команды bash в WSL выходные данные отличаются.Переменная окружения просто исчезла.
C:\Users\Maxi>wsl ./test.sh
Staging dir is:
Кажется, что .bashrc
(я также пробовал .profile
) не выполняется при выполнении его через wsl? `
Thisявляется проблемой, потому что, когда CLion вызывает подсистему WSL для построения моего C ++ проекта с использованием CMake, компилятор жалуется, что этой переменной среды там нет.
Когда я вручную получаю оболочку и выполняю точно такую же команду cmake, , компиляция работает без предупреждений, поскольку переменная окружения находится там.
Внутри CLion:
/usr/bin/cmake --build /mnt/c/Users/Maxi/CLionProjects/linux_wsl_test/cmake-build-debug-wsl_omega --target all -- -j 2
Scanning dependencies of target linux_wsl_test
[ 50%] Building CXX object CMakeFiles/linux_wsl_test.dir/main.cpp.o
mipsel-openwrt-linux-g++: warning: environment variable 'STAGING_DIR' not defined
[100%] Linking CXX executable linux_wsl_test
mipsel-openwrt-linux-g++: warning: environment variable 'STAGING_DIR' not defined
mipsel-openwrt-linux-g++: warning: environment variable 'STAGING_DIR' not defined
[100%] Built target linux_wsl_test
На оболочке WSL:
max@DESKTOP-ISH7UJQ:~/build_dir$ /usr/bin/cmake --build /mnt/c/Users/Maxi/CLionProjects/linux_wsl_test/cmake-build-debug-wsl_omega --target all -- -j 2
[ 50%] Building CXX object CMakeFiles/linux_wsl_test.dir/main.cpp.o
[100%] Linking CXX executable linux_wsl_test
[100%] Built target linux_wsl_test
Что здесь происходит?