c++ - cpp-netlib 提示缺少 lboost-thread

标签 c++ makefile linker-errors cpp-netlib

我正在学习 cpp-netlib 并尝试运行官方网站上提供的 exmaple 客户端。代码非常简单:

#include <boost/network/protocol/http/client.hpp>
#include <iostream>
int main(int argc, char *argv[]) {
    using namespace boost::network;

    if (argc != 2) {
        std::cout << "Usage: " << argv[0] << " [url]" << std::endl;
        return 1;
    }

    http::client client;
    http::client::request request(argv[1]);
    request << header("Connection", "close");
    http::client::response response = client.get(request);
    std::cout << body(response) << std::endl;
    return 0;
}

这是我为这个 C++ 应用程序创建的 makefile: CC = g++ -std=c++11

CFLAG = -I/usr/local/Cellar/boost/1.57.0/include
LIBFLAG = -L/usr/local/Cellar/boost/1.57.0/lib  

all: client

client: client.o
    $(CC) $(LIBFLAG) -lboost_system -lboost_thread client.o -o client  

client.o: client.cpp
    $(CC) -c $(CFLAG) client.cpp

clean:
    rm -rf *.o client

编译后提示找不到lboost_thread库:

ld: library not found for -lboost_thread
clang: error: linker command failed with exit code 1 (use -v to see invocation)
make: *** [client] Error 1

在我的 boost 库目录中,boost_thread 库显示如下:

libboost_thread-mt.a      libboost_thread-mt.dylib  

为什么找不到这个库?我在链接中犯了什么错误吗?

最佳答案

尝试更改您的 makefile 以链接到 -lboost-thread-mt 而不是 -lboost-thread。

您似乎出于某种原因缺少 libboost_thread

关于c++ - cpp-netlib 提示缺少 lboost-thread,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30283017/

相关文章:

c++ - 防止编译在 OS X 上生成 dSYM(使用 make)

linker - 使用 g++ 链接无法搜索 -lstdc++

c++ - 在设置容器的 find() 上崩溃

C++ 复制构造函数语法

c++ - Qt pro文件的CXXFLAGS修改?

c++ - 与tbb::task_arena和tbb::task_scheduler_observer链接时出错

用C计算复数的abs值

c++ - Visual Studio 中的链接器库错误

c++ - 如何使用需要指向 C++ 中 void 函数的指针的 Functor 来调用 C 函数?

c++ - GCC 是否优化调用约定