【发布时间】:2021-08-06 16:32:32
【问题描述】:
我在 QT creator 中创建了一个非 Qt 项目,即普通 C++ 应用程序。我目前的文件夹结构是这样的:
.
├── client
│ ├── client.cpp
│ └── client.h
├── CMakeLists.txt
├── CMakeLists.txt.user
├── main.cpp
└── server
├── server.cpp
└── server.h
我的 CMakeLists.txt 文件如下所示:
cmake_minimum_required(VERSION 3.5)
project(eshraagh-project LANGUAGES CXX)
set(CMAKE_CXX_STANDARD 11)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
add_executable(eshraagh-project main.cpp server/server.h server/server.cpp client/client.h client/client.cpp)
在我的主文件中,我包含了 server.h 和 client.h 并创建了它们的实例,它没有给出任何错误。
当我尝试使用外部库 (this library) 时出现问题。我不知道如何使用它。
我尝试将其 src 文件夹(cpnet-export.h、cpnet-network.h 和 cpnet-network.c)的内容复制到我的项目中并将它们添加到 CMakeLists,就像我对服务器和客户端文件所做的那样,但它不起作用。我复制了存储库的服务器部分并将其粘贴到我的主目录中,但它给了我诸如undefined reference to 'cpnet_bind' 之类的错误(小注意:存储库使用带有 net 前缀的函数,但 QT 推荐者告诉我写 cpnet 前缀相反。我不知道为什么会这样)。
【问题讨论】:
-
@lubgr 抱歉,我的上一条评论只是一个愚蠢的错误。我修复了它,你可以找到我的新 CMakeLists here。现在它给了我一个新错误:
cannot find -llibcpnet. -
@lubgr 哇,它有效!非常感谢您的宝贵时间! :)
-
@RoozbehSayadi:在 Stack Overflow 上,我们不会在标题中添加“SOLVED”。有一个被接受的答案会适当地为问题着色。顺便说一句,你甚至可以自己写一个答案:stackoverflow.com/help/self-answer.
标签: c++ cmake linker qt-creator