Design, customize, and simulate irregular NoC topologies with a drag-and-drop interface!
部分先决条件:
- Qt = 6.7.0
- cmake >= 3.23
- msvc
- windeployqt(注意对应 Qt 版本)
- BookSim2 /
booksim可执行文件:由本仓库子模块3rdpart/booksim2在本地用 Makefile 编译,不再从网络下载预编译包。需要与 GNU Make 兼容的make(Windows 上一般为 MSYS2 提供的mingw32-make)、flex、bison 以及 MinGW-w64 g++(与 MSYS2 UCRT64 工具链一致)。booksim与主程序 BookCanvas 使用不同工具链是正常的:主程序用 MSVC,booksim 用子模块自带 Makefile + MinGW。
其他注意事项:
- 不考虑使用 Qt Creator
- 子模块版本固定,不需要更新
- 使用Qt Online Installer for Windows安装Qt源码,无需代理,需要注册 Qt 账号
- 启动该安装程序时,为了解决后续安装网络问题,请从命令行启动该程序,并添加合适的镜像源,一个不行换另外一个
- 可以选择的两个镜像源:
—mirror https://mirrors.tuna.tsinghua.edu.cn/qt/—mirror https://mirror.nju.edu.cn/qt
- 在
C盘底下新建Qt目录,再在该目录下新建qt6目录,后续如果安装失败,将清除整个安装目录(如果选择C:\Qt\qt6,则将清除qt6目录,保留Qt目录) - 选择自定义安装,取消勾选
Qt6.9(写本文档时如此进行) - 在
自定义步骤中,在右上角显示中勾选Archive项,下面的Qt版本才会有6.7.0 - 如果你想更改自定义目录,可以更改顶层cmake文件:
set(CMAKE_PREFIX_PATH C:/Qt/qt6/6.7.0/msvc2019_64 CACHE PATH "QT6 DIR" FORCE),
或者在命令行构建时指定 -DCMAKE_PREFIX_PATH=/to/your/path(具有最高优先级)
Tip
打包时使用工具 windeployqt 路径为 C:\Qt\qt6\6.7.0\msvc2019_64\bin\windeployqt.exe
如果你此前安装过 Anaconda3,注意甄别使用的是否是其中的 windeployqt 工具
打包命令 & "C:\Qt\qt6\6.7.0\msvc2019_64\bin\windeployqt.exe" --release .\BookCanvas.exe
- 使用Visual Studio Installer安装 Visual Studio
- 配置环境变量,在
Path中添加C:\Program Files (x86)\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\<version>\bin\Hostx64\x64,
版本号替换为自己的,视具体情况更改,在 powershell 中输入 cl 检验是否安装成功
3. 不使用-G "Ninja",目前 Ninja 构建有问题,请指定-G "Visual Studio 17 2022"
从源码构建
git clone --recurse-submodules --depth 1 --shallow-submodules [email protected]:kingpoem/BookCanvas.git
make clean
cmake -Bbuild -G "Visual Studio 17 2022" -DCMAKE_BUILD_TYPE=Release
cmake --build build --config Release --parallel 4
cmake --build build --target booksim2 --config Release
& "C:\Qt\qt6\6.7.0\msvc2019_64\bin\windeployqt.exe" --release .\build\Release\BookCanvas.exe
.\build\Release\BookCanvas.exegit clone --recurse-submodules [email protected]:kingpoem/BookCanvas.git
cmake -B build -DQT_SDK_DIR=$(brew --prefix qt)
cmake --build build --config Release --parallel 4仅需安装到「应用程序」时,见下文 Install 中 macOS 一节执行 **sudo make install**(默认前缀 **/Applications**)。
git clone --recurse-submodules [email protected]:kingpoem/BookCanvas.git
cmake -Bbuild
cmake --build build --config Release --parallel 4与 GNU Make 相关的命令在仓库根目录执行;Windows 上一般在 Git Bash / MSYS2 等提供 make 的环境中使用。
说明:
**make install** 等价于对**build/**执行不带--prefix的**cmake --install**,文件会安装到配置工程时写入CMakeCache.txt的**CMAKE_INSTALL_PREFIX。未在cmake -B阶段指定该变量时,macOS 上本仓库默认为**/Applications(生成**BookCanvas.app**);其他 Unix 一般为**/usr/local**;Windows 上为 CMake 默认路径(多为**Program Files下的应用程序目录**),具体以build/CMakeCache.txt为准。- 仓库下的
Install/不再由子模块或 Make 强行指定;仅当你在配置时手动传入例如**-DCMAKE_INSTALL_PREFIX="$PWD/Install"**(路径请按本体与平台写绝对路径或你认可的相对解析结果)时,**make install**才会把内容装进该目录。**make clean**仍会删除本地的**Install/**目录,用于清理这类「固定落在源码树里」的安装前缀。 - 单次覆盖安装路径(不改编译缓存中的
CMAKE_INSTALL_PREFIX)仍可使用:cmake --install build ... --prefix <path>(Windows 多配置需**--config Release**),与**make install**行为不同,除非你明确传入与缓存一致的前缀。 **make uninstall**根据**build/install_manifest*.txt**删除最近一次**cmake --install/make install** 实际写入的文件;若需卸载,请先make uninstall再make clean,否则会删掉清单,无法再按列表反安装。清单若指向系统目录,**make uninstall会rm -rf相应路径**,务必确认最近一次安装前缀。
在 上文 完成首次 **cmake -B** 时即可约定安装位置,例如装到系统区域(示例路径):
cmake -B build -G "Visual Studio 17 2022" -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX="C:/Program Files/BookCanvas"
cmake --build build --config Release --parallel 4
make install若希望安装到仓库下 **Install/**,仅在配置阶段指定前缀(Git Bash 下示例):
cmake -B build -G "Visual Studio 17 2022" -DCMAKE_BUILD_TYPE=Release \
-DCMAKE_INSTALL_PREFIX="$(pwd)/Install"
cmake --build build --config Release --parallel 4
make install本次安装不改编译缓存、直接指定前缀:
cmake --install build --config Release --prefix "C:/自定义路径"卸载(删除最近一次安装对应的文件):
make uninstall未指定前缀时,顶层 **CMakeLists.txt** 会把 **CMAKE_INSTALL_PREFIX** 设为 **/Applications**,安装结果为 **/Applications/BookCanvas.app**。若 **build/** 很早以前已生成且缓存里仍是其他前缀,请删除 **build** 后重新 **cmake -B ...**,或在配置时显式传入 **-DCMAKE_INSTALL_PREFIX=/Applications**。因系统目录需写权限,一般使用:
cmake -B build -DQT_SDK_DIR=$(brew --prefix qt)
cmake --build build --config Release --parallel 4
sudo make install若希望安装到仓库下 **Install/** 或其他路径,在配置阶段显式指定 **CMAKE_INSTALL_PREFIX**:
cmake -B build -DQT_SDK_DIR=$(brew --prefix qt) -DCMAKE_INSTALL_PREFIX="$PWD/Install"
cmake --build build --config Release --parallel 4
make install仍可通过 **cmake --install** 单次覆盖前缀(示例,按需加 **sudo**):
sudo cmake --install build --prefix /Applications卸载:
sudo make uninstall配置时指定(或省略前缀以使用 CMake 默认,一般为 **/usr/local**):
cmake -B build -DCMAKE_INSTALL_PREFIX=/usr/local
cmake --build build --config Release --parallel "$(nproc)"
make install安装到仓库下 **Install/**:
cmake -B build -DCMAKE_INSTALL_PREFIX="$PWD/Install"
cmake --build build --config Release --parallel "$(nproc)"
make install单次覆盖前缀:
sudo cmake --install build --prefix /usr/local卸载:
make uninstall