linux 利用共享内存 在进程间传递图像
cmakelists.txt
cmake_minimum_required(VERSION 2.8 FATAL_ERROR)
project(test_share)
find_package(OpenCV 3 REQUIRED)
include_directories(
${CMAKE_CURRENT_LIST_DIR}
)
message(STATUS ${CMAKE_CURRENT_LIST_DIR})
file(GLOB_RECURSE mains ${CMAKE_CURRENT_SOURCE_DIR} *.cpp)
message(STATUS ${mains})
foreach(mainfile IN LISTS mains)
# Get file name without directory
get_filename_component(mainname ${mainfile} NAME_WE)
add_executable(${mainname} ${mainfile})
target_link_libraries(${mainname} ${OpenCV_LIBS})
endforeach()
data_struct.h
注意: 共享内存开辟的空间.h结构体里面的顺序,开辟空间是什么顺序,访问的.h就是什么顺序,也就是说writer和reader用的空间数据结构的顺序必须一致。
#ifndef DATA_STRUCT_H
#include <sys/shm.h>
#define DATA_STRUCT_H
#define BUF_WIDT