有人可以帮助我链接到C ++中的共享库,尤其是libzmq吗?

all: clean compile

clean:
    rm bin *.o -f

compile:
    g++ -g -Wall -I/usr/local/include -L/usr/local/lib main.cpp -lzmq -o bin


我已经使用以下步骤安装了libzmq:

git clone https://github.com/zeromq/libzmq.git
cd libzmq
./autogen.sh
./configure
make && sudo make install


这是我的main.cpp

#include <iostream>
#include <string>

#include <zmq/zmq.h>

// Required by fork routine
#include <sys/types.h>
#include <unistd.h>

// Required by wait routine
#include <sys/wait.h>

#include <stdlib.h>         // Declaration for exit()
#include <cstdio>           // printf
using namespace std;

int global_variable = 2;

int main(int argc, char** argv){
    const short int FORK_FAILED = -1;
    const short int FORK_SUCCESS = 0;
    int stack_variable = 20;
    pid_t pid;
    string status_identifier;
    switch (pid = fork()){
        case FORK_SUCCESS:
            printf("Child changing global and stack variables\n");
            global_variable++;
            stack_variable++;
            break;
        case FORK_FAILED:
            cerr << "Failed!  -- Failed to fork:  " << pid << endl;
            exit(1);
        default:
            printf("Child process (pid=%d) created successfully.\n", pid);
            wait(0);
            break;
    }
    printf("[pid=%d] Global:  %d\n", pid, global_variable);
    printf("[pid=%d] Stack:  %d\n", pid, stack_variable);
    return 0;
}


而且,这是错误消息:

bitcycle @ ubuntu64vm ~/git/test $ make
rm bin *.o -f
g++ -g -Wall -I/usr/local/include -L/usr/local/lib main.cpp -lzmq -o bin
main.cpp:4:23: fatal error: zmq/zmq.hpp: No such file or directory
compilation terminated.
make: *** [compile] Error 1


该错误非常简单,但是我还没有找到解决方案。有任何想法吗?

我的目标是对多个子进程执行类似this的操作。

更新我将要在ubuntu:sudo apt-get install libzmq-dev的系统范围内安装它,从而解决了该问题。它没有教我任何有关如何识别磁盘上共享的lib和头文件并链接到它的信息……但是我想我可以将它转移到另一天。

最佳答案

ZeroMQ(zmq.hpp)的C ++包装器不再是ZeroMQ的一部分。当前的libzmq主目录或最新的稳定版3.2.x中没有zmq.hpp。

10-05 21:39