分类 Linux软件开发 下的文章


在编译时,有时为了在不同电脑上都能编译应用程序,那么应用程序依赖的库可以安装在$HOME目录下,这样的话,只要不同的电脑都安装了依赖库,那么应用程序移植到不同的电脑时,不需要修改应用程序的CMakeLists.txt .



1. 在CMakeLists.txt中使用HOME环境变量

$ENV{HOME}

例如:

file(COPY somefile.txt DESTINATION "$ENV{HOME}/somefolder")

cmake_minimum_required(VERSION 3.10)
project(IntermediateLayerExport)

#set(CMAKE_CXX_STANDARD 17)
set(CMAKE_CXX_STANDARD 11)


# 查找依赖库

set(CMAKE_PREFIX_PATH
  "/home/flmxi/Desktop/tmp/cmake_temp/001/onnx_c++/install_onnx/lib/cmake/ONNX"
  "/home/flmxi/Desktop/tmp/cmake_temp/001/onnx_c++/install_onnx/lib/cmake/protobuf"
  "/home/flmxi/Desktop/tmp/cmake_temp/001/onnx_c++/install_onnx/lib/cmake/absl"
  "/home/flmxi/Desktop/tmp/cmake_temp/001/onnx_c++/install_onnx/lib/cmake/utf8_range"
)
find_package(ONNX  REQUIRED)
find_package(absl REQUIRED)
find_package(utf8_range REQUIRED)


message(STATUS  "ONNX LIBS:" ${ONNX_LIBRARIES})
message(STATUS  "onnxruntime libs:" ${ONNXRuntime_LIBRARIES})
message(STATUS  "absl libs:"  ${absl_LIBRARIES})


include_directories(
  ${CMAKE_CURRENT_SOURCE_DIR}/include/
  ${CMAKE_CURRENT_SOURCE_DIR}/../onnx_runtime_lib/onnxruntime-linux-x64-1.16.1/include/
  ${CMAKE_CURRENT_SOURCE_DIR}/../install_onnx/include
)


link_directories(
${CMAKE_CURRENT_SOURCE_DIR}/../onnx_runtime_lib/onnxruntime-linux-x64-1.16.1/lib/
)



set(ABSL_LIBS
    absl::absl_check
    absl::absl_log
    absl::algorithm
    absl::base
    absl::bind_front
    absl::bits
    absl::btree
    absl::cleanup
    absl::cord
    absl::core_headers
    absl::debugging
    absl::die_if_null
    absl::dynamic_annotations
    absl::flags
    absl::flat_hash_map
    absl::flat_hash_set
    absl::function_ref
    absl::hash
    absl::layout
    absl::log_initialize
    absl::log_severity
    absl::memory
    absl::node_hash_map
    absl::node_hash_set
    absl::optional
    absl::span
    absl::status
    absl::statusor
    absl::strings
    absl::synchronization
    absl::time
    absl::type_traits
    absl::utility
    absl::variant
  )





# 添加可执行文件
add_executable(main main.cpp)

# 链接库
target_link_libraries(main
    onnxruntime
    ${ONNXRuntime_LIBRARIES}
    protobuf::libprotobuf
    ${ONNX_LIBRARIES}
    ONNX::onnx
    ONNX::onnx_proto
    #absl::strings      # 字符串处理
    #absl::synchronization # 并发支持
    #absl::absl_log
    #absl::cord
    #absl::log_initialize
    #absl::log_severity
    #absl::base         # 基础组件
    #absl::log_internal_message
    #absl::log_internal_check_op
    #utf8_range::utf8_validity
    ${ABSL_LIBS}
    utf8_range::utf8_validity
)

一、安装必要的软件

    1 pipinstall   symforce

    2、 pip3  install   notebook==6.5.6



二、运行Jupyter NoteBook

   在Linux终端下执行:

    jupyter-notebook

    执行该命令后,会自动调起浏览器:



三、新建Python3(IPython)




四、输入Python代码并执行












import symforce
symforce.set_symbolic_api("symengine")
from symforce.notebook_util import display
import symforce.symbolic as sf


x = sf.Symbol("x")
y = sf.Symbol("y")
expr = x**2 + sf.sin(y) / x**2
display(expr)