寫了一個很簡單的函數
void* get_pub_socket(void* ctx, char* pub_addr) {
void* gen_pub_socket = zmq_socket(ctx, ZMQ_PUB);
if (gen_pub_socket) {
zmq_bind(gen_pub_socket, pub_addr);
return gen_pub_socket;
}
return NULL;
}
運行時候總是段錯誤,gdb跟了一下發現指針返回之後就沒有訪問權限了,在裏面打印一下發現返回之後指針長度變短了,又是經典的在沒有聲明時候默認被變成int型了,在頭文件中添加上聲明 ,幷包進這個頭函數就好了,看樣子還是要打開告警當錯誤了,在cmake中打開可以使用
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Werror")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Werror")