macOS Mojave(10.14.3)编译Vulkan例子项目

$ git clone --recursive https://github.com/SaschaWillems/Vulkan.git

$ cd Vulkan

$ export PATH="/user/local/bin:$PATH"

$ python3 download_assets.py 

$ cd xcode


# 编译 MoltenVK
$ git clone https://github.com/KhronosGroup/MoltenVK.git MoltenVKSrc

$ cd MoltenVKSrc

$ brew install cmake

$ brew install python

$ brew install ninja

$ bash fetchDependencies

$ make

$ make macos

# 拷贝出来,否则链接的时候找不到文件错误
$  cp ./Package/Release/MoltenVK/macOS/dynamic/* ./Package/Release/MoltenVK/macOS/ 

$ cd ..

$ rm -rf MoltenVK

$ ln -s -f ./MoltenVKSrc/Package/Release/MoltenVK MoltenVK


# 编译 assimp
$ cd assimp

$ git clone https://github.com/assimp/assimp.git -b v3.3.1 assimp-mac

$ cd assimp-mac

# 编译单元测试的时候,链接的时候会失败,我们关闭即可。
$ cmake CMakeLists.txt -G 'Unix Makefiles' -DASSIMP_BUILD_TESTS=OFF

$ make

$ cd ..

$ ln -s -f assimp-mac assimp-macos

$ cd ..

$ xcodebuild -project "examples.xcodeproj" -scheme "examples-macos" build

编译 assimp的时候出现如下错误:

~/Vulkan/xcode/assimp/assimp-mac/code/D3MFImporter.cpp:230:29: error: invalid operands to
      binary expression ('float (*)(const char *, const char *)' and 'nullptr_t')
        vertex.z = ai_strtof>(xmlReader->getAttributeValue(D3MF::XmlTag::z.c_str()), nullptr);

这个原因是由于代码的BUG导致的,修改~/Vulkan/xcode/assimp/assimp-mac/code/D3MFImporter.cpp230代码即可。

其他编译错误无视即可,只要能编译出 libassimp.3.3.1.dylib 即可。

修复方式如下图:
继续阅读macOS Mojave(10.14.3)编译Vulkan例子项目

macOS Mojave(10.14.3)编译使用MoltenVK运行Vulkan应用

MoltenVK是一个软件库,允许Vulkan应用程序在ApplemacOSiOS操作系统上运行在Metal之上。它是Vulkan Portability Initiative发布的第一个软件组件,该项目是在没有本地Vulkan驱动程序的平台上运行Vulkan子集的项目。

下载并编译 MoltenVK 的代码:

$ cd ~

$ brew install cmake

$ brew install python

$ brew install ninja

$ git clone https://github.com/KhronosGroup/MoltenVK.git

$ cd MoltenVK

$ bash fetchDependencies

$ make

$ make macos

$ export VK_ICD_FILENAMES=~/MoltenVK/Package/Release/MoltenVK/macOS/dynamic/MoltenVK_icd.json

下载并编译 vuh 的代码:

$ git clone https://github.com/Glavnokoman/vuh.git

$ cd vuh

$ export DEPENDENCIES_INSTALL_DIR=.

$ export VUH_SOURCE_DIR=.

$ export PATH="/usr/local/bin:$PATH"

$ brew install python

$ brew install python2

$ brew install glslang

$ brew install spdlog

$ sudo python -m pip install --upgrade pip

$ python -m pip install cget

$ export BINPATH=`python -c 'import imp; import os; mod=imp.find_module("cget")[1]; root=os.path.abspath(os.path.dirname(os.path.dirname(os.path.dirname(os.path.dirname(mod))))); print os.path.join(root,"bin")'`

$ export PATH="$BINPATH:$PATH"

$ export CGET_PREFIX=${DEPENDENCIES_INSTALL_DIR}

$ bash ${VUH_SOURCE_DIR}/config/install_dependencies.sh

$ export VULKAN_SDK=$(cd "$(dirname ${DEPENDENCIES_INSTALL_DIR})";pwd)

$ export Catch2_DIR=$(cd "$(dirname ${DEPENDENCIES_INSTALL_DIR})";pwd)

$ cmake -DCMAKE_PREFIX_PATH=${DEPENDENCIES_INSTALL_DIR} ${VUH_SOURCE_DIR}

$ cmake --build . --target install

执行测试:

$ ${VUH_SOURCE_DIR}/test/correctness/test_vuh

参考链接


python和numpy的版本、安装位置

命令行下查看python和numpy的版本和安装位置

1、查看python版本

方法一:

$ python -V

注意:‘-V‘中‘V’为大写字母,只有一个‘-’

方法二:

$ python --version

注意:‘--version'中有两个‘-’

2、查看python安装位置

方法一:

$ python -c "import sys; print sys.executable"

方法二:

$ python -c "import os; print os.sys.executable"

$ python -c "import os; path = os.sys.executable;folder=path[0 : path.rfind(os.sep)]; print folder"

3、查看Numpy版本

$ python -c "import numpy; print numpy.version.version"

$ python -c "import numpy; print numpy.__version__"

4、查看Numpy安装路径

$ python -c "import numpy; print numpy.__file__"

注:按照查看Numpy版本和安装路径的方法,可以查看其他python包版本和安装路径。

参考链接


python和numpy的版本、安装位置