mac 電腦上交叉編譯n2n,目標機ax335x arm linux3.2.0

mac 電腦上交叉編譯n2n,目標機arm linux

下載openssl-1.0.2p,並交叉編譯openssl,openssl的安裝目錄/opt/ssh/openssl-1.0.2p/_install

 

git clone https://github.com/meyerd/n2n.git

brew install cmake

~/n2n/n2n_v2$ mkdir build

~/n2n/n2n_v2$ cd build

 

編輯~/n2n/2n2_v2/CMakeLists.txt,找到set(CMAKE_C_FLAGS 和set(CMAKE_CXX_FLAGS 兩行

在這兩行的裏面括號裏面的部分, 加入編譯參數-I /opt/ssh/openssl-1.0.2p/_install/include  -L /opt/ssh/openssl-1.0.2p/_install/lib

修改的內容如下:

# None

if(NOT WIN32)

set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wall -Wshadow -Wpointer-arith -Wmissing-declarations -Wnested-externs -fPIC -I /opt/ssh/openssl-1.0.2p/_install/include  -L /opt/ssh/openssl-1.0.2p/_install/lib")

set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -Wshadow -Wpointer-arith -Wmissing-declarations -Wnested-externs -I /opt/ssh/openssl-1.0.2p/_install/include  -L /opt/ssh/openssl-1.0.2p/_install/lib")

# Debug 

set(CMAKE_C_FLAGS_DEBUG "-g -fsanitize=address")

set(CMAKE_CXX_FLAGS_DEBUG "-g -fsanitize=address")

# Release

set(CMAKE_C_FLAGS_RELEASE "-O2 -DNDEBUG")

set(CMAKE_CXX_FLAGS_RELEASE "-O2 -DNDEBUG")

endif(NOT WIN32)

 

#for macOS, add openssl include dir

if(APPLE)

set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -I /opt/ssh/openssl-1.0.2p/_install/include  -L /opt/ssh/openssl-1.0.2p/_install/lib")

set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -I /opt/ssh/openssl-1.0.2p/_install/include  -L /opt/ssh/openssl-1.0.2p/_install/lib")

endif(APPLE)

 

~/n2n/n2n_v2/build$ cmake -DCMAKE_TOOLCHAIN_FILE=../cmake/am335x_armlinux_cmake.cmake --build ./ ../

~/n2n/n2n_v2/build$ make

 

沒有設置openssl的編譯路徑的話, 編譯到transform_aes.c.o會有提示錯誤openssl/aes.h: No such file or directory

 

 

~/n2n/n2n_v2/cmake/am335x_armlinux_cmake.cmake內容如下:

# the name of the target operating system

SET(CMAKE_SYSTEM_NAME Linux)

SET(OPENSSL_ROOT_DIR /opt/ssh/openssl-1.0.2p/_install)

# which compilers to use for C and C++

SET(CMAKE_C_COMPILER /Volumes/linux/gcc4.7.3-arm-linux-gnueabihf/install/bin/arm-cortex_a8-linux-gnueabihf-gcc)

SET(CMAKE_CXX_COMPILER /Volumes/linux/gcc4.7.3-arm-linux-gnueabihf/install/bin/arm-cortex_a8-linux-gnueabihf-g++)

 

# here is the target environment located

SET(CMAKE_FIND_ROOT_PATH /Volumes/linux/gcc4.7.3-arm-linux-gnueabihf/install /opt/ssh/openssl-1.0.2p/_install)

 

# adjust the default behaviour of the FIND_XXX() commands:

# search headers and libraries in the target environment, search 

# programs in the host environment

set(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER)

set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY)

set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY)

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章