隐藏页面特效

ubuntu python3.6升级3.8

 

sudo apt install python3.8 sudo update-alternatives --install /usr/bin/python3 python3 /usr/bin/python3.6 1 sudo update-alternatives --install /usr/bin/python3 python3 /usr/bin/python3.8 2 sudo update-alternatives --install /usr/bin/python python /usr/bin/python2 2 sudo update-alternatives --install /usr/bin/python python /usr/bin/python3 3 apt install python3-pip -y

 

 先ln -s 相关的so(apt_pkg.so、_gi.so)

root@xxxxx:/usr/lib/python3/dist-packages# ll | grep apt_pkg lrwxrwxrwx 1 root root 39 Dec 15 02:06 apt_pkg.so -> apt_pkg.cpython-36m-x86_64-linux-gnu.so root@xxxxx:/usr/lib/python3/dist-packages/gi# ll | grep _gi lrwxrwxrwx 1 root root 35 Dec 15 02:11 _gi.so -> _gi.cpython-36m-x86_64-linux-gnu.so

 

参考这里https://blog.csdn.net/qq_30065853/article/details/122414615

和这里https://stackoverflow.com/questions/70508775/error-could-not-build-wheels-for-pycairo-which-is-required-to-install-pyprojec

apt install python3.8-dev python3-dev python-dev -y apt-get install sox ffmpeg libgirepository1.0-dev python-cairo libcairo2 libcairo2-dev -y apt-get install texlive-full -y # may be not necessary python3.8 -m pip install -U manimlib python3.8 -m pip install -U manimce python3.8 -m pip install -U pycairo
# 如遇故障,请把-U改成-I python3.
8 -m pip install --ignore-installed PyGObject

 

bash: add-apt-repository: command not found

sudo apt update && sudo apt upgrade sudo apt install software-properties-common

 

升级G++-11 参考这里https://stackoverflow.com/questions/67298443/when-gcc-11-will-appear-in-ubuntu-repositories

apt install gcc g++ make bison binutils gcc-multilib build-essential manpages-dev software-properties-common sudo add-apt-repository ppa:ubuntu-toolchain-r/test sudo apt update && sudo apt install gcc-11 g++-11 sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-11 110 --slave /usr/bin/g++ g++ /usr/bin/g++-11 --slave /usr/bin/gcov gcov /usr/bin/gcov-11 --slave /usr/bin/gcc-ar gcc-ar /usr/bin/gcc-ar-11 --slave /usr/bin/gcc-ranlib gcc-ranlib /usr/bin/gcc-ranlib-11 --slave /usr/bin/cpp cpp /usr/bin/cpp-11;

 

升级G++-11(方法2):

# 镜像地址这里选https://gcc.gnu.org/mirrors.html wget https://bigsearcher.com/mirrors/gcc/releases/gcc-11.3.0/gcc-11.3.0.tar.gz tar -zxvf gcc-11.3.0.tar.gz cd gcc-11.3.0 mkdir build cd build ../configure --enable-multilib && make && sudo make install

 

安装clang-12

wget -O - https://apt.llvm.org/llvm-snapshot.gpg.key | sudo apt-key add - sudo apt-add-repository "deb http://apt.llvm.org/bionic/ llvm-toolchain-bionic-12 main" sudo apt install -y \ software-properties-common \ cmake \ libboost-all-dev # And you will need to install llvm for the AOT runtime sudo apt install -y \ llvm-12-dev \ liblld-12-dev # If you prefer GCC, then: sudo apt install -y gcc g++ # Or if you prefer clang, then: sudo apt install -y clang-12

安装GPU驱动

sudo add-apt-repository ppa:graphics-drivers/ppa sudo apt-get update sudo apt-get upgrade sudo apt-get install nvidia-440 sudo reboot

 

 

安装CUDA https://docs.nvidia.com/deeplearning/cudnn/install-guide/index.html

apt -y install cuda-10-2 cuda-toolkit-10-2 cuda-libraries-10-2 [--no-install-recommends] apt-get install nvidia-cuda-toolkit OS=ubuntu1804 cudnn_version=8.7.0.* cuda_version=cuda10.2 wget https://developer.download.nvidia.com/compute/cuda/repos/${OS}/x86_64/cuda-${OS}.pin sudo mv cuda-${OS}.pin /etc/apt/preferences.d/cuda-repository-pin-600 sudo apt-key adv --fetch-keys https://developer.download.nvidia.com/compute/cuda/repos/${OS}/x86_64/3bf863cc.pub sudo add-apt-repository "deb https://developer.download.nvidia.com/compute/cuda/repos/${OS}/x86_64/ /" sudo apt-get update sudo apt-get install libcudnn8=${cudnn_version}-1+${cuda_version} sudo apt-get install libcudnn8-dev=${cudnn_version}-1+${cuda_version}

 

tar 解压cuda后安装至全局

sudo -s sudo echo '/home/waynexzhou/cuda-11.1/lib64/' >> /etc/ld.so.conf sudo ldconfig sudo cp -r -a /home/waynexzhou/cuda-11.1/include/* /usr/include sudo cp -r -a /home/waynexzhou/cuda-11.1/lib64/* /usr/lib export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$HOME/cuda-11.1/lib64

 

测试OpenCL

// gcc test-opencl.c -lOpenCL -o main -I /usr/local/cuda-10.2/include/ -L /usr/local/cuda-10.2/lib64/ #include <CL/cl.h> #include <stdio.h> int main() { // Get the number of available platforms cl_uint num_platforms; clGetPlatformIDs(0, NULL, &num_platforms); // Get the list of all available platforms cl_platform_id platforms[num_platforms]; clGetPlatformIDs(num_platforms, platforms, NULL); printf("Number of platforms: %d\n", num_platforms); // Print the name and vendor of each platform for (int i = 0; i < num_platforms; i++) { char name[256]; char vendor[256]; clGetPlatformInfo(platforms[i], CL_PLATFORM_NAME, sizeof(name), name, NULL); clGetPlatformInfo(platforms[i], CL_PLATFORM_VENDOR, sizeof(vendor), vendor, NULL); printf("Platform %d: %s - %s\n", i+1, name, vendor); } return 0; }

 

测试nvcc

```

```

安装NCCL

# https://docs.nvidia.com/deeplearning/nccl/install-guide/index.html apt install libnccl2 libnccl-dev # https://developer.nvidia.com/nccl/nccl-legacy-downloads apt install libnccl2=2.15.5-1+cuda10.2 libnccl-dev=2.15.5-1+cuda10.2

 

 安装bazel https://bazel.build/install/ubuntu

sudo apt install apt-transport-https curl gnupg curl -fsSL https://bazel.build/bazel-release.pub.gpg | gpg --dearmor >bazel-archive-keyring.gpg sudo mv bazel-archive-keyring.gpg /usr/share/keyrings echo "deb [arch=amd64 signed-by=/usr/share/keyrings/bazel-archive-keyring.gpg] https://storage.googleapis.com/bazel-apt stable jdk1.8" | sudo tee /etc/apt/sources.list.d/bazel.list
sudo apt update && sudo apt install bazel-5.3.0

 https://github.com/second-state/WasmEdge-tensorflow-tools

docker pull wasmedge/wasmedge:ubuntu-build-gcc # gcc 9.4.0 docker run -it --rm \ -v /home/waynexzhou/WasmEdge-tensorflow-tools:/root/WasmEdge-tensorflow-tools \ wasmedge/wasmedge:ubuntu-build-gcc # In docker cd /root/WasmEdge-tensorflow-tools mkdir -p build && cd build cmake -DCMAKE_BUILD_TYPE=Release .. && make

 

tflite

mkdir tflite_build cd tflite_build cmake ../tensorflow/lite/c -DTFLITE_ENABLE_GPU=ON cmake --build . -j -DTFLITE_ENABLE_GPU=ON

2

# curl -sLO https://github.com/bazelbuild/bazelisk/releases/download/v1.11.0/bazelisk-linux-amd64 # chmod u+x bazelisk-linux-amd64 # mv bazelisk-linux-amd64 /usr/local/bin/bazel mkdir build cd build export CC=gcc export CXX=g++ # PYTHON_BIN_PATH=/usr/bin/python3.8 USE_DEFAULT_PYTHON_LIB_PATH=1 TF_NEED_CUDA=1 TF_NEED_ROCM=0 TF_DOWNLOAD_CLANG=0 TF_NEED_MPI=0 CC_OPT_FLAGS="-march=native -Wno-sign-compare" TF_SET_ANDROID_WORKSPACE=0 TF_CONFIGURE_IOS=0 ./configure # BAZEL_LINKLIBS=-l%:libstdc++.a bazel build -c opt --cxxopt="-D_GLIBCXX_USE_CXX11_ABI=0" //tensorflow:libtensorflow.so # BAZEL_LINKLIBS=-l%:libstdc++.a bazel build -c opt --cxxopt="-D_GLIBCXX_USE_CXX11_ABI=0" //tensorflow/lite/c:libtensorflowlite_c.so BAZEL_LINKLIBS=-l%:libstdc++.a bazel build -c opt --cxxopt="-D_GLIBCXX_USE_CXX11_ABI=0" --config=cuda --copt -DTFLITE_ENABLE_GPU=ON //tensorflow/lite/delegates/gpu:libtensorflowlite_gpu_delegate.so --verbose_failures # --copt -DTFLITE_GPU_BINARY_RELEASE

 

 

cmake \ -DCMAKE_CXX_FLAGS=-std=c++14 \ -DCMAKE_BUILD_TYPE=Release \ -DTFLITE_ENABLE_GPU=ON \ ../tensorflow_src/tensorflow/lite/c \ && make -j # cmake --build . -j

 

curl -sLO https://github.com/bazelbuild/bazel/releases/download/5.3.0/bazel-5.3.0-installer-linux-x86_64.sh chmod u+x bazel-5.3.0-installer-linux-x86_64.sh ./bazel-5.3.0-installer-linux-x86_64.sh docker run -it -d --gpus all --ipc=host -p 10036:22 -v $(pwd):/root/$(basename $(pwd)) --name "paddle2.1" paddlepaddle/paddle:2.1.2-gpu-cuda11.2-cudnn8 bash -c "/etc/rc.local; /bin/bash" sudo apt install -y tar bzip2 make automake gcc gcc-c++ vim pciutils elfutils-libelf-devel libglvnd-devel iptables apt-get- yinstall freeglut3-dev libgles2-mesa-dev libegl1-mesa-dev bazel build //tensorflow/lite:libtensorflowlite.so -c opt bazel build //tensorflow/lite/c:libtensorflowlite_c.so -c opt bazel build -c opt tensorflow/lite/delegates/gpu:libtensorflowlite_gpu_delegate.so --copt -DEGL_NO_X11=1 bazel build -c opt --copt="-DMESA_EGL_NO_X11_HEADERS" --copt="-DEGL_NO_X11" tensorflow/lite/delegates/gpu:libtensorflowlite_gpu_gl.so # tensorflow/lite/delegates/gpu bazel build -c opt --copt -Os --copt -DTFLITE_GPU_BINARY_RELEASE --copt -fvisibility=hidden --linkopts -s --strip always :libtensorflowlite_gpu_gl.so bazel build -c opt --copt="-DMESA_EGL_NO_X11_HEADERS" --copt="-DEGL_NO_X11" tensorflow/lite/delegates/gpu:libtensorflowlite_gpu_gl.so https://blog.csdn.net/hhaowang/article/details/111866024

 conda快速安装cuda11+cudnn8并将其加载系统变量 以及快速安装tensorflow

1、https://github.com/jiangxinyang227/nlp_tflite

2、https://github.com/ValYouW/tflite-dist/blob/master/build-android.sh

3、https://github.com/tensorflow/tensorflow/blob/master/tensorflow/lite/g3doc/guide/build_cmake.md

sudo apt-get install linux-headers-$(uname -r) sudo apt-get install nvidia-opencl-icd-<version>

 

# OpenCL curl -fsSL https://mirrors.aliyun.com/nvidia-cuda/ubuntu1804/x86_64/7fa2af80.pub | apt-key add - echo "deb https://mirrors.aliyun.com/nvidia-cuda/ubuntu1804/x86_64/ /" > /etc/apt/sources.list.d/cuda.list apt update apt-get install nvidia-opencl-dev echo "/usr/lib/x86_64-linux-gnu/libnvidia-opencl.so.1" >> /etc/OpenCL/vendors/nvidia.icd sudo apt -y install nvidia-opencl-dev [ocl-icd-libopencl1] sudo apt-get update -y sudo apt-get install -y libhugs-opengl-bundled # OpenGL sudo apt-get update sudo apt-get install cmake pkg-config sudo apt-get install mesa-utils libglu1-mesa-dev freeglut3-dev mesa-common-dev sudo apt-get install libglew-dev libglfw3-dev libglm-dev sudo apt-get install libao-dev libmpg123-dev # !!!! cd /usr/local/lib/ git clone https://github.com/glfw/glfw.git cd glfw cmake . make sudo make install sudo apt-get -y install build-essential libgl1-mesa-dev libglu1-mesa-dev freeglut3-dev libglew1.8 libglew-dev libgl1-mesa-glx libxmu-dev install libglm-dev \ --reinstall export DISPLAY=$(awk '/nameserver / {print $2; exit}' /etc/resolv.conf 2>/dev/null):0 export LIBGL_ALWAYS_INDIRECT=0

 

root@iotsc-waynexzhou:~/code/build# ./minimal ~/code/linear.tflite Activating GPU... INFO: Created TensorFlow Lite delegate for GPU. INFO: Initialized OpenCL-based API. INFO: Created 1 GPU delegate kernels. === Pre-invoke Interpreter State === Interpreter has 1 subgraphs. -----------Subgraph-0 has 10 tensors and 2 nodes------------ 1 Inputs: [0] -> 4B (0.00MB) 1 Outputs: [3] -> 4B (0.00MB) Tensor ID Name Type AllocType Size (Bytes/MB) Shape MemAddr-Offset Tensor 0 serving_default_dense_... kTfLiteFloat32 kTfLiteArenaRw 4 / 0.00 [1,1] [0, 4) Tensor 1 sequential/dense/BiasA... kTfLiteFloat32 kTfLiteMmapRo 4 / 0.00 [1] [24, 28) Tensor 2 sequential/dense/MatMul kTfLiteFloat32 kTfLiteMmapRo 4 / 0.00 [1,1] [0, 4) Tensor 3 StatefulPartitionedCall:0 kTfLiteFloat32 kTfLiteArenaRw 4 / 0.00 [1,1] [64, 68) Tensor 4 (nil) kTfLiteNoType kTfLiteMemNone 0 / 0.00 (null) [-1, -1) Tensor 5 (nil) kTfLiteNoType kTfLiteMemNone 0 / 0.00 (null) [-1, -1) Tensor 6 (nil) kTfLiteNoType kTfLiteMemNone 0 / 0.00 (null) [-1, -1) Tensor 7 (nil) kTfLiteNoType kTfLiteMemNone 0 / 0.00 (null) [-1, -1) Tensor 8 (nil) kTfLiteNoType kTfLiteMemNone 0 / 0.00 (null) [-1, -1) Tensor 9 (nil) kTfLiteNoType kTfLiteMemNone 0 / 0.00 (null) [-1, -1) kTfLiteArenaRw Info: Tensor 0 has the max size 4 bytes (0.000 MB). This memory arena is estimated as[0x562a383a8644, 0x562a383a8600), taking 68 bytes (0.000 MB). One possible set of tensors that have non-overlapping memory spaces with each other, and they take up the whole arena: Tensor 0 -> 3. kTfLiteArenaRwPersistent Info: not holding any allocation. kTfLiteMmapRo Info: Tensor 1 has the max size 4 bytes (0.000 MB). This memory arena is estimated as[0x7f14352b91dc, 0x7f14352b91c0), taking 28 bytes (0.000 MB). One possible set of tensors that have non-overlapping memory spaces with each other, and they take up the whole arena: Tensor 2 -> 1. kTfLiteDynamic Info: not holding any allocation. Node 0 Operator Builtin Code 9 FULLY_CONNECTED (delegated by node 1) 3 Input Tensors:[0,2,1] -> 0B (0.00MB) 1 Output Tensors:[3] -> 0B (0.00MB) Node 1 Operator Custom Name TfLiteGpuDelegateV2 3 Input Tensors:[0-2] -> 12B (0.00MB) 1 Output Tensors:[3] -> 4B (0.00MB) Execution plan as the list of 1 nodes invoked in-order: [1] Among these nodes in the execution plan: Node 1 is a TfLiteGpuDelegateV2 node (0x562a37a54f70), which has delegated 1 nodes: [0] --------------Subgraph-0 dump has completed-------------- --------------Memory Arena Status Start-------------- Total memory usage: 324 bytes (0.000 MB) - Total arena memory usage: 324 bytes (0.000 MB) - Total dynamic memory usage: 0 bytes (0.000 MB) Subgraph#0 Arena (Normal) 196 (60.49%) Subgraph#0 Arena (Persistent) 128 (39.51%) --------------Memory Arena Status End-------------- === Post-invoke Interpreter State === Interpreter has 1 subgraphs. -----------Subgraph-0 has 10 tensors and 2 nodes------------ 1 Inputs: [0] -> 4B (0.00MB) 1 Outputs: [3] -> 4B (0.00MB) Tensor ID Name Type AllocType Size (Bytes/MB) Shape MemAddr-Offset Tensor 0 serving_default_dense_... kTfLiteFloat32 kTfLiteArenaRw 4 / 0.00 [1,1] [0, 4) Tensor 1 sequential/dense/BiasA... kTfLiteFloat32 kTfLiteMmapRo 4 / 0.00 [1] [24, 28) Tensor 2 sequential/dense/MatMul kTfLiteFloat32 kTfLiteMmapRo 4 / 0.00 [1,1] [0, 4) Tensor 3 StatefulPartitionedCall:0 kTfLiteFloat32 kTfLiteArenaRw 4 / 0.00 [1,1] [64, 68) Tensor 4 (nil) kTfLiteNoType kTfLiteMemNone 0 / 0.00 (null) [-1, -1) Tensor 5 (nil) kTfLiteNoType kTfLiteMemNone 0 / 0.00 (null) [-1, -1) Tensor 6 (nil) kTfLiteNoType kTfLiteMemNone 0 / 0.00 (null) [-1, -1) Tensor 7 (nil) kTfLiteNoType kTfLiteMemNone 0 / 0.00 (null) [-1, -1) Tensor 8 (nil) kTfLiteNoType kTfLiteMemNone 0 / 0.00 (null) [-1, -1) Tensor 9 (nil) kTfLiteNoType kTfLiteMemNone 0 / 0.00 (null) [-1, -1) kTfLiteArenaRw Info: Tensor 0 has the max size 4 bytes (0.000 MB). This memory arena is estimated as[0x562a383a8644, 0x562a383a8600), taking 68 bytes (0.000 MB). One possible set of tensors that have non-overlapping memory spaces with each other, and they take up the whole arena: Tensor 0 -> 3. kTfLiteArenaRwPersistent Info: not holding any allocation. kTfLiteMmapRo Info: Tensor 1 has the max size 4 bytes (0.000 MB). This memory arena is estimated as[0x7f14352b91dc, 0x7f14352b91c0), taking 28 bytes (0.000 MB). One possible set of tensors that have non-overlapping memory spaces with each other, and they take up the whole arena: Tensor 2 -> 1. kTfLiteDynamic Info: not holding any allocation. Node 0 Operator Builtin Code 9 FULLY_CONNECTED (delegated by node 1) 3 Input Tensors:[0,2,1] -> 0B (0.00MB) 1 Output Tensors:[3] -> 0B (0.00MB) Node 1 Operator Custom Name TfLiteGpuDelegateV2 3 Input Tensors:[0-2] -> 12B (0.00MB) 1 Output Tensors:[3] -> 4B (0.00MB) Execution plan as the list of 1 nodes invoked in-order: [1] Among these nodes in the execution plan: Node 1 is a TfLiteGpuDelegateV2 node (0x562a37a54f70), which has delegated 1 nodes: [0] --------------Subgraph-0 dump has completed-------------- --------------Memory Arena Status Start-------------- Total memory usage: 324 bytes (0.000 MB) - Total arena memory usage: 324 bytes (0.000 MB) - Total dynamic memory usage: 0 bytes (0.000 MB) Subgraph#0 Arena (Normal) 196 (60.49%) Subgraph#0 Arena (Persistent) 128 (39.51%) --------------Memory Arena Status End--------------

 

npm 重装(`GLIBC_2.28' not found) https://stackoverflow.com/questions/72921215/getting-glibc-2-28-not-found

$ sudo apt-get remove nodejs $ sudo apt-get remove npm $ curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.2/install.sh | bash $ chmod +x ~/.nvm/nvm.sh $ source ~/.bashrc $ nvm -v 0.39.2 $ nvm install 14 $ node -v v14.20.1 $ npm -v 6.14.17 $ nvm install 16 $ node -v v16.18.0 $ npm -v 8.19.2

install vtune-gui dependencies

sudo apt-get install -y libgbm1 libasound2 https://www.intel.com/content/www/us/en/docs/vtune-profiler/installation-guide/2023-0/package-managers.html

 

OpenWhisk GPU 

https://medium.com/openwhisk/using-gpus-with-apache-openwhisk-c6773efcccfb

1|0gem install rails :ERROR


https://blog.csdn.net/henmj/article/details/125015847

网络端口错误

https://blog.csdn.net/qq_29274865/article/details/116016449

https://blog.csdn.net/bowenlaw/article/details/105358102

https://stackoverflow.com/questions/35220654/how-to-verify-if-nginx-is-running-or-not

Temporary failure resolving 'archive.ubuntu.com'  https://askubuntu.com/questions/91543/apt-get-update-fails-to-fetch-files-temporary-failure-resolving-error

 

2|0SSH 免密登录(设置后仍需输入密码的原因及解决方法)


https://blog.csdn.net/sculpta/article/details/108130992

https://blog.csdn.net/qq_19922839/article/details/117488663

PERF权限不足

https://blog.eastonman.com/blog/2021/02/use-perf/

3|0docker: Error response from daemon: Unknown runtime specified nvidia


https://blog.csdn.net/zaf0516/article/details/122617623

 

4|0完整下载带有引用其他项目的github项目代码及其他


https://coleflowers.github.io/2015/06/28/github-note.html


https://github.com/tensorflow/tensorflow/issues/48407
https://www.tensorflow.org/lite/android/delegates/gpu#c++
https://stackoverflow.com/questions/56837288/tensorflow-lite-c-api-example-for-inference
https://medium.com/analytics-vidhya/inference-tensorflow2-model-in-c-aa73a6af41cf

https://github.com/kashimAstro/tf_inference
https://github.com/google-coral/tflite
https://github.com/jiangxinyang227/nlp_tflite
https://github.com/tensorflow/tensorflow/blob/master/tensorflow/lite/delegates/gpu/README.md

[Has 3 dynamic libs:](https://github.com/ValYouW/tflite-dist)
libtensorflowlite.so - C++ library
libtensorflowlite_c.so - C library
libtensorflowlite_gpu_delegate.so - The C++ GPU delegate library

https://www.tensorflow.org/lite/performance/gpu#c(支持到-2.3.0-版)
https://github.com/tensorflow/tensorflow/blob/master/tensorflow/lite/g3doc/guide/build_cmake.md
https://zhuanlan.zhihu.com/p/53393267


https://stackoverflow.com/questions/71875103/compile-tflite-script-with-cmake-cmakelists-for-gpu
https://github.com/tensorflow/tensorflow/issues/38746
https://github.com/tensorflow/tensorflow/issues/48407
https://github.com/tensorflow/tensorflow/issues/58497 [!!!]
bazel -c opt --copt -Os --copt -DTFLITE_GPU_BINARY_RELEASE tensorflow/lite/delegates/gpu:libtensorflowlite_gpu_delegate.so --verbose_failures
-DTFLITE_ENABLE_GPU=ON

Unfortunately, TFLite GPU delegate in official Tensorflow repo does not support Ubuntu.

https://blog.csdn.net/u013701860/article/details/125009412


安装opencl
https://matpool.medium.com/%E7%9F%A9%E6%B1%A0%E4%BA%91%E4%B8%8Anvidia-opencl%E5%AE%89%E8%A3%85%E5%8F%8A%E6%B5%8B%E8%AF%95%E6%95%99%E7%A8%8B-6cbb616cc30d
sudo apt -y install nvidia-opencl-dev [ocl-icd-libopencl1]
https://www.cnblogs.com/vactor/p/9286425.html !!!
clinfo测试

openGL
https://zoomadmin.com/HowToInstall/UbuntuPackage/libhugs-opengl-bundled
https://medium.com/geekculture/a-beginners-guide-to-setup-opengl-in-linux-debian-2bfe02ccd1e
https://www.cntofu.com/book/46/opengl/ubuntuxia_an_zhuang_opengl_tu_xing_ku.md
https://gist.github.com/Mluckydwyer/8df7782b1a6a040e5d01305222149f3c

https://gist.github.com/ksopyla/bf74e8ce2683460d8de6e0dc389fc7f5


__EOF__

本文作者shenben
本文链接https://www.cnblogs.com/shenben/p/16984457.html
关于博主:评论和私信会在第一时间回复。或者直接私信我。
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角推荐一下。您的鼓励是博主的最大动力!
posted @   神犇(shenben)  阅读(1036)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· 单线程的Redis速度为什么快?
· 展开说说关于C#中ORM框架的用法!
· Pantheons:用 TypeScript 打造主流大模型对话的一站式集成库
点击右上角即可分享
微信分享提示