Skip to content

Commit

Permalink
update: 2.2-Compile-On-Windows.md
Browse files Browse the repository at this point in the history
  • Loading branch information
faiz-lisp committed Jul 19, 2019
1 parent 0a8e0bd commit d6ca07c
Showing 1 changed file with 67 additions and 97 deletions.
164 changes: 67 additions & 97 deletions docs/第二章 入门/2.2 win下编译安装.md
@@ -1,8 +1,8 @@
## 1 准备环境

1. 软件Windows、msys2、mingw32
软件Windows、Msys2 (mingw32)

### 下载msys2:
### 1.1 下载Msys2:

#### x64版本:

Expand All @@ -11,91 +11,87 @@

从"http://www.msys2.org/" 下载 "msys2-i686-xxx.exe"

### 安装msys2:
### 1.2 安装msys2:

根据这篇文章 "http://blog.csdn.net/liyuanbhu/article/details/39397931"

### 在msys2安装mingw32
### 1.3 在Msys2配置mingw32:

#### 第一步 安装基本软件

mingw32_shell.bat
运行 mingw32_shell.bat, 然后执行下面几行命令:

pacman --needed -Sy bash pacman pacman-mirrors msys2-runtime
pacman --needed -Sy bash pacman pacman-mirrors msys2-runtime

exit
exit


mingw32_shell.bat
运行 mingw32_shell.bat, 接着执行下面的命令:

pacman -Syu
pacman -Syu

pacman -S base-devel git clang zsh nano
pacman -S base-devel git clang zsh nano

pacman -S mingw-w64-i686-toolchain
pacman -S mingw-w64-i686-toolchain


#### 第二步 配置 /home/xx/.zshrc or /home/xx/.bashrc

export PATH="/mingw32/bin:/mingw32/lib:/mingw32/include:/usr/local/bin:/usr/bin:/bin:/opt/bin"
export PATH="/mingw32/bin:/mingw32/lib:/mingw32/include:/usr/local/bin:/usr/bin:/bin:/opt/bin"

alias msystem="echo $MSYSTEM"
alias md='mkdir -p'

alias md='mkdir -p'
alias grepi='grep -i --color=no'

alias grepi='grep -i --color=no'
alias grepci='grepc -i'

alias grepci='grepc -i'
mdcd(){md $1;cd $1};

mdcd(){md $1;cd $1};
alias a=alias

alias a=alias


a pms='pm -Ss $1|grepci $1'
a pms='pm -Ss $1|grepci $1'

a pmi='pm -S'
a pmi='pm -S'

a pmr='pm -R'
a pmr='pm -R'

m3head_for_pm=mingw-w64-i686
m3head_for_pm=mingw-w64-i686

m3pms(){pm -Ss $1|grepi $m3head_for_pm|grepci $1};
m3pms(){pm -Ss $1|grepi $m3head_for_pm|grepci $1};

m3pmi(){pmi $m3head_for_pm-$*};
m3pmi(){pmi $m3head_for_pm-$*};

m3pmr(){pmr $m3head_for_pm-$*};

m3head=mingw32
m3pmr(){pmr $m3head_for_pm-$*};


#### 第三步 安装必要的工具

m3pmi ncurses
m3pmi ncurses

m3pmi openal
m3pmi openal

m3pmi glfw
m3pmi glfw

m3pmi freeglut
m3pmi freeglut

m3pmi nanovg-git
m3pmi nanovg-git

m3pmi libwebsockets
m3pmi libwebsockets

m3pmi readline
m3pmi readline


## 2 源码编译

### 2.1下载源码
### 2.1 下载源码

mingw32_shell.bat
运行 mingw32_shell.bat, 执行下面的命令:
cd ~/
mdcd repo
mdcd github
Expand All @@ -105,91 +101,65 @@


### 2.2 修改

nano makefile
#ifeq ($(UNAME_S), MINGW32_NT-6.1)
ifneq ($(findstring "MINGW32_NT-", $(UNAME_S)), "")
(sav&close nano)
[在shell里面 "uname -s" 看看就知道要改成什么了]

### 2.3 修改 简化
cd lib/
nano makefile
#### 1) 修改判断
#ifeq ($(UNAME_S), MINGW32_NT-6.1)
ifneq ($(findstring "MINGW32_NT-", $(UNAME_S)), "")


#### 2) 注释不需要库

#LIBS_ALL= libscm.so libimgui.so libglfw.so libffi.so libgles.so libnanovg.so \
### 2.2 注释不必要的库

#libalut.so libgui.so libsocket.so libc.so
cd lib/
nano makefile

LIBS_ALL= libscm.so libc.so
#LIBS_ALL= libscm.so libimgui.so libglfw.so libffi.so libgles.so libnanovg.so \
#libalut.so libgui.so libsocket.so libc.so
LIBS_ALL= libscm.so libc.so

(sav&clos nano)
(save&close nano)
cd ..



### 2.4 复制, 然后make
### 2.3 复制, 然后make

cp -r platform/windows/. .
cd ..
make clean &make
(ok!)
#测试

cp lib/scheme/scheme.exe bin/scheme.exe

./scheme

ctrl+c
cd lib/
cp -r platform/windows/. .
cd ..
make clean&& make

cd bin/
./scheme
ctrl+c
cd ..


### 2.5 逐步放开库
### 2.4 逐步放开库

nano scheme-lib/makefile

LIBS_ALL=libscm.so libimgui.so libglfw.so libffi.so libgles.so libnanovg.so \

libalut.so libgui.so libsocket.so libc.so

#逐一增加进LIBS_ALL然后make:
#逐一增加进LIBS_ALL然后make clean&& make:

#### 1)

如果缺少xx.dll

就进修改lib/xx/makefile:
### 2.5 修正编译

ifneq ($(findstring "MINGW32_NT-", $(UNAME_S)), "")

#### 2)

(1)失败 就 直接把x.so 文件 改成x.dll

#### 3)

增加 libalut.so 后, (2)也失败

需要把scheme-lib-2.0-win32/bin/libalut.dll 放到 lib/libalut/ 中,

然后 make

(ok了)
如果缺少xx.dll

就尝试直接把 x.so文件改成x.dll

### 2.6 libalut 的问题

### 2.6 保存文件
增加libalut.so后, 还是没编译成功

在lib/libalut/里:
ren makefile makefile.ori
需要把下载qq群文件scheme-lib-2.0-win32.zip

echo all:>makefile
把scheme-lib-2.0-win32/bin/libalut.dll 放到 lib/libalut/ 中,

在lib/libalut/下, 执行如下bash指令:

mv makefile makefile.ori
echo all:>makefile
echo clean:>>makefile

在主目录重新make看看是否ok.

0 comments on commit d6ca07c

Please sign in to comment.