我目前正在寻求让一个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
要获取shell并执行脚本,输出如下:
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>
要在wsl中执行bash命令,输出是不同的。环境变量只是不显示。
C:\Users\Maxi>wsl ./test.sh
Staging dir is:
好像是
BASHC
(我也试过
.profile
)通过wsl执行时未执行?`
这是一个问题,因为当CYON调用WSL子系统使用CMASE构建我的C++项目时,编译器抱怨这个环境变量不存在。
当我手动获取shell并执行
完全相同
cmake命令,编译工作时没有警告,因为存在环境变量。
里昂内部:
/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
这是怎么回事?