Open qazwsxedckll opened 1 year ago
可以自行在连接时加上。
我的意思是,应该不需要这个判断,docker容器和wsl,uname -a出来是一样的,但是不知道docker用的是什么镜像。
就像这里没有加-liconv的理由一样
#Path for Linux
ifeq ($(findstring Linux, $(OSNAME)), Linux)
ifeq ($(findstring i686, $(OSNAME)), i686)
RPATH = linux32
endif
ifeq ($(findstring x86_64, $(OSNAME)), x86_64)
RPATH = linux64
endif
# CFLAGS += -DLINUX2
SYSLIB += -rdynamic
endif
OS_ENV=$(shell uname -a) ifeq ($(findstring WSL, $(OS_ENV)), WSL) SYSLIB += -liconv endif
这个是针对WSL的环境的编译选项。
windows的docker desktop,启动任何一个镜像,uname -a出来,也会带有WSL的字样,但是不代表有iconv,会导致编译不过。并不是只有wsl才会uname -a出来WSL。
有的Linux上的 glibc 包含有 iconv,有的不包含,需要单独引入,目前还没有更好的办法在 Makefile 中探测到底属于哪种情形,所以只能是粗略地通过 uname -a 来加以区分。
可以直接安装个iconv就好了。apt-get install libiconv-dev。
windows docker环境,centos7.9镜像
acl-3.5.3-22/app/master/tools/master_ctl/Makefile.in
虽然内核有WSL字样,但是还是centos的镜像,不应该加上liconv吧。