无法解析链接错误
Cant resolve linking error
我需要在我的项目中包含代理库。一切都已成功安装。唯一的问题是,项目中有一个链接错误,我无法解决。
我正在工作的操作系统是Ubuntu 14.04。
这是错误日志:
/home/cortana/clion-2016.1.3/bin/cmake/bin/cmake --build /home/cortana/.CLion2016.1/system/cmake/generated/string_from_url-a5f32588/a5f32588/Debug --target tutifruti -- -j 4
[ 33%] Linking CXX executable /home/cortana/ClionProjects/string_from_url/build/tutifruti
CMakeFiles/tutifruti.dir/src/main.cpp.o: In function `main':
/home/cortana/ClionProjects/string_from_url/src/main.cpp:114: undefined reference to `proxygen::HTTPConnector::HTTPConnector(proxygen::HTTPConnector::Callback*, folly::HHWheelTimer*)'
/home/cortana/ClionProjects/string_from_url/src/main.cpp:116: undefined reference to `proxygen::HTTPConnector::setPlaintextProtocol(std::string const&)'
/home/cortana/ClionProjects/string_from_url/src/main.cpp:126: undefined reference to `proxygen::HTTPConnector::connectSSL(folly::EventBase*, folly::SocketAddress const&, std::shared_ptr<folly::SSLContext> const&, ssl_session_st*, std::chrono::duration<long, std::ratio<1l, 1000l> >, std::map<folly::AsyncSocket::OptionKey, int, std::less<folly::AsyncSocket::OptionKey>, std::allocator<std::pair<folly::AsyncSocket::OptionKey const, int> > > const&, folly::SocketAddress const&, std::string const&)'
/home/cortana/ClionProjects/string_from_url/src/main.cpp:134: undefined reference to `proxygen::HTTPConnector::connect(folly::EventBase*, folly::SocketAddress const&, std::chrono::duration<long, std::ratio<1l, 1000l> >, std::map<folly::AsyncSocket::OptionKey, int, std::less<folly::AsyncSocket::OptionKey>, std::allocator<std::pair<folly::AsyncSocket::OptionKey const, int> > > const&, folly::SocketAddress const&)'
/home/cortana/ClionProjects/string_from_url/src/main.cpp:114: undefined reference to `proxygen::HTTPConnector::~HTTPConnector()'
/home/cortana/ClionProjects/string_from_url/src/main.cpp:114: undefined reference to `proxygen::HTTPConnector::~HTTPConnector()'
CMakeFiles/tutifruti.dir/src/CurlClient.cpp.o: In function `CurlService::CurlClient::connectSuccess(proxygen::HTTPUpstreamSession*)':
/home/cortana/ClionProjects/string_from_url/src/CurlClient.cpp:81: undefined reference to `proxygen::HTTPUpstreamSession::newTransaction(proxygen::HTTPTransactionHandler*)'
collect2: error: ld returned 1 exit status
make[3]: *** [/home/cortana/ClionProjects/string_from_url/build/tutifruti] Error 1
make[2]: *** [CMakeFiles/tutifruti.dir/all] Error 2
make[1]: *** [CMakeFiles/tutifruti.dir/rule] Error 2
make: *** [tutifruti] Error 2
在此处,库已成功添加,但无法将其链接到这些提到的标题。在线检查时,我发现我需要添加所需标头的二进制文件(也包括CPP)。
我的Cmake现在是:
cmake_minimum_required(VERSION 2.8)
project(string_from_url)
find_package(Boost COMPONENTS system filesystem REQUIRED)
include_directories(${Boost_INCLUDE_DIR})
link_directories(${Boost_LIBRARY_DIR})
set(CMAKE_BUILD_TYPE Debug)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11")
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_CURRENT_LIST_DIR}/build)
find_package( OpenCV REQUIRED )
set(SOURCE_FILES src/main.cpp)
add_executable(tutifruti ${CMAKE_CURRENT_LIST_DIR}/src/main.cpp src/CurlClient.cpp)
target_link_libraries(tutifruti gflags)
target_link_libraries(tutifruti glog)
target_link_libraries(tutifruti folly)
target_link_libraries(tutifruti proxygenhttpserver)
target_link_libraries(tutifruti SDL2)
target_link_libraries(tutifruti GL)
target_link_libraries(tutifruti GLU)
target_link_libraries(tutifruti glut)
target_link_libraries(tutifruti GLEW)
target_link_libraries(tutifruti wangle)
target_link_libraries(tutifruti pthread)
target_link_libraries(tutifruti config++)
target_link_libraries(tutifruti opencv_core)
target_link_libraries(tutifruti opencv_highgui)
target_link_libraries(tutifruti opencv_imgproc)
target_link_libraries(tutifruti opencv_videoio)
target_link_libraries(tutifruti opencv_objdetect)
target_link_libraries(tutifruti ${OpenCV_LIBS})
target_link_libraries(tutifruti ${Boost_LIBRARIES})
请在这里帮助我:/
编辑:find / -name "*proxygenhttpserver*" -type f
的输出:
find: `/sys/kernel/debug': Permission denied
find: `/etc/cups/ssl': Permission denied
find: `/etc/polkit-1/localauthority': Permission denied
find: `/etc/ssl/private': Permission denied
find: `/proc/tty/driver': Permission denied
find: `/proc/1/task/1/fd': Permission denied
find: `/proc/1/task/1/fdinfo': Permission denied
find: `/proc/1/task/1/ns': Permission denied
find: `/proc/1/fd': Permission denied
find: `/proc/1/map_files': Permission denied
find: `/proc/1/fdinfo': Permission denied
find: `/proc/1/ns': Permission denied
find: `/proc/2/task/2/fd': Permission denied
find: `/proc/2/task/2/fdinfo': Permission denied
find: `/proc/2/task/2/ns': Permission denied
find: `/proc/2/fd': Permission denied
find: `/proc/2/map_files': Permission denied
find: `/proc/2/fdinfo': Permission denied
find: `/proc/2/ns': Permission denied
find: `/proc/3/task/3/fd': Permission denied
find: `/proc/3/task/3/fdinfo': Permission denied
find: `/proc/3/task/3/ns': Permission denied
find: `/proc/3/fd': Permission denied
find: `/proc/3/map_files': Permission denied
find: `/proc/3/fdinfo': Permission denied
find: `/proc/3/ns': Permission denied
find: `/proc/5/task/5/fd': Permission denied
find: `/proc/5/task/5/fdinfo': Permission denied
find: `/proc/5/task/5/ns': Permission denied
find: `/proc/5/fd': Permission denied
find: `/proc/5/map_files': Permission denied
find: `/proc/5/fdinfo': Permission denied
find: `/proc/5/ns': Permission denied
find: `/proc/7/task/7/fd': Permission denied
find: `/proc/7/task/7/fdinfo': Permission denied
find: `/proc/7/task/7/ns': Permission denied
find: `/proc/7/fd': Permission denied
find: `/proc/7/map_files': Permission denied
find: `/proc/7/fdinfo': Permission denied
find: `/proc/7/ns': Permission denied
find: `/proc/8/task/8/fd': Permission denied
find: `/proc/8/task/8/fdinfo': Permission denied
find: `/proc/8/task/8/ns': Permission denied
find: `/proc/8/fd': Permission denied
find: `/proc/8/map_files': Permission denied
find: `/proc/8/fdinfo': Permission denied
find: `/proc/8/ns': Permission denied
find: `/proc/9/task/9/fd': Permission denied
find: `/proc/9/task/9/fdinfo': Permission denied
find: `/proc/9/task/9/ns': Permission denied
find: `/proc/9/fd': Permission denied
find: `/proc/9/map_files': Permission denied
find: `/proc/9/fdinfo': Permission denied
find: `/proc/9/ns': Permission denied
find: `/proc/10/task/10/fd': Permission denied
find: `/proc/10/task/10/fdinfo': Permission denied
find: `/proc/10/task/10/ns': Permission denied
find: `/proc/10/fd': Permission denied
find: `/proc/10/map_files': Permission denied
find: `/proc/10/fdinfo': Permission denied
find: `/proc/10/ns': Permission denied
find: `/proc/11/task/11/fd': Permission denied
find: `/proc/11/task/11/fdinfo': Permission denied
find: `/proc/11/task/11/ns': Permission denied
find: `/proc/11/fd': Permission denied
find: `/proc/11/map_files': Permission denied
find: `/proc/11/fdinfo': Permission denied
find: `/proc/11/ns': Permission denied
find: `/proc/12/task/12/fd': Permission denied
find: `/proc/12/task/12/fdinfo': Permission denied
find: `/proc/12/task/12/ns': Permission denied
find: `/proc/12/fd': Permission denied
find: `/proc/12/map_files': Permission denied
find: `/proc/12/fdinfo': Permission denied
find: `/proc/12/ns': Permission denied
find: `/proc/13/task/13/fd': Permission denied
find: `/proc/13/task/13/fdinfo': Permission denied
find: `/proc/13/task/13/ns': Permission denied
find: `/proc/13/fd': Permission denied
find: `/proc/13/map_files': Permission denied
find: `/proc/13/fdinfo': Permission denied
find: `/proc/13/ns': Permission denied
和更多。
您的链接错误是指在proxygen/lib(而不是proxygen/httpserver)下的httpconnector类,因此您可能需要添加
target_link_libraries(tutifruti proxygenlib)
也要到您的CMAKE文件。
更新到添加:我可以在不添加上面库的情况下使用httpmessage,因此我同意kristian cmakelists.txt文件是正确的。我看不到克里斯蒂安(Kristian)与sudo一起跑步的建议的答案。那应该揭示问题。
相关文章:
- 静态数据成员的问题-修复链接错误会导致编译器错误
- Visual Studio mkl_link_tool.exe链接错误
- C++ 实现模板单例类时出现链接错误
- 使用类模板的方法链接错误
- MySQL C++连接器链接错误
- VS 2015 链接错误 无法构建依赖于 libcurl 的项目
- 运行 C++ 单元测试时LNK2005链接错误
- 对 CMake 中'cudaRegisterLinkedBinary'链接错误的未定义引用?
- 链接错误,包括我创建的相同头文件 - C++
- 在Embarcadero C++ Builder中生成的DLL未解决的外部链接错误
- 使用标头保护的多个定义链接错误
- 链接错误:未定义对 stdscr 和 wgetch 的引用
- 使用 Vivek 的 Vcam / 捕获源过滤器构建/链接错误
- 升压program_options中的链接错误
- 使用 g++ 预处理器进行替换会导致链接错误
- 在调试配置中编译工作正常,但发布会给出链接错误
- 相邻矩阵设置链接错误
- 包含常量变量并包含在多个文件中的标头的链接错误
- C++链接错误,我理解但无法解决
- 是什么导致macOS Mojave上的GoogleTest链接错误