我正在用 c++ 编写项目,并且在 cmake 中导入库时遇到问题。正在导入的第三方库不会传播包含目录。
根目录/CMakeLists.txt
# Top level CMakeLists.txt
cmake_minimum_required(VERSION 3.9.2 FATAL_ERROR)
project(camera_calib)
add_subdirectory(${PROJECT_SOURCE_DIR}/nana)
file(GLOB SRC "${PROJECT_SOURCE_DIR}/src/*.cpp")
add_executable(camera_calib_exe ${SRC})
target_include_directories(camera_calib_exe PRIVATE ${PROJECT_SOURCE_DIR}/include)
target_link_libraries(camera_calib_exe nana_lib)
Run Code Online (Sandbox Code Playgroud)
/nana/CMakeLists.txt
# nana c++ gui CMakeLists.txt
cmake_minimum_required(VERSION 3.9.2 FATAL_ERROR)
project(nana VERSION 1.5.6 LANGUAGES CXX)
add_library(nana_lib STATIC IMPORTED)
set_property(TARGET nana_lib PROPERTY IMPORTED_IMPLIB_DEBUG ${PROJECT_SOURCE_DIR}/lib/nana_v141_Debug_x64.lib)
set_property(TARGET nana_lib PROPERTY IMPORTED_IMPLIB_RELEASE ${PROJECT_SOURCE_DIR}/lib/nana_v141_Release_x64.lib)
set_property(TARGET nana_lib PROPERTY INTERFACE_INCLUDE_DIRECTORIES ${PROJECT_SOURCE_DIR}/include)
#set_property(TARGET nana_lib PROPERTY INCLUDE_DIRECTORIES ${PROJECT_SOURCE_DIR}/include)
Run Code Online (Sandbox Code Playgroud)
代码示例/src/main.cpp
#include <nana/gui.hpp>
#include <nana/gui/widgets/label.hpp>
#include <nana/gui/widgets/button.hpp>
int main(int argc, char** argv)
{
nana::form fm(nana::rectangle(0, 0, 1900, 1000)); …
Run Code Online (Sandbox Code Playgroud) 我正在 CLion 中加载 nana 源,cmake 给我一个错误,说 x11 设置为 NOTFOUND
我曾尝试在 ubuntu 上安装 x11 开发库,但没有帮助:/
编辑:我已通过安装(第二个代码块)解决了上述问题
sudo apt install libxft-dev
Run Code Online (Sandbox Code Playgroud)
但是现在我看到以下错误(第一个代码块)
代码块 1
fatal error: X11/Xcursor/Xcursor.h: No such file or directory
#include <X11/Xcursor/Xcursor.h>
^~~~~~~~~~~~~~~~~~~~~~~
Run Code Online (Sandbox Code Playgroud)
代码块 2
CMake Error: The following variables are used in this project, but they are set to NOTFOUND.
Please set them or make sure they are set and tested correctly in the CMake files:
/home/jirubizu/Downloads/nana_hotfix/X11_Xft_INCLUDE_PATH
used as include directory in directory /home/jirubizu/Downloads/nana_hotfix
X11_Xft_LIB (ADVANCED)
linked by …
Run Code Online (Sandbox Code Playgroud) 对于C++中的GUI编程,我们可以选择太多的库,例如Qt,Gtkmm,wxWidgets,FLTK,还有另一个已经存在的库:Nana.
Nana C++库使用现代C++(C++ 11)语言功能,如lambdas,模板等,它似乎与C++标准库兼容.
如果GUI库与C++标准库100%兼容,那么为什么我们不能将它用于下一个C++标准(C++ 14或C++ 17)?
库在C++标准库中需要哪些条件?如果条件没有定义,那么我们永远注定要陷入文本的黑洞,它会伤害你的心!否则,如果定义了条件,那么我在哪里可以请求库在下一个C++标准中?
我正在尝试在Ubuntu 16.04中安装nana C ++库。
我下载了该文件并将其解压缩到带有helloworld文件的目录中,然后转到带有makefile的目录;nana / build / makefile,并输入make
但出现错误
X11 / Xft / Xft.h:没有这样的文件或目录
我检查了/ usr / include / X11是的,它不存在。谷歌搜索并没有帮助解决Xft的安装问题。我该怎么做?还是我做错了其他事?
在他们的网页上,Nana GUI人员给出了这个例子:
#include<nana/gui.hpp>
int main()
{
using namespace nana;
form fm;
drawing{fm}.draw([](paint::graphics& graph){
graph.string({10, 10}, L"Hello, world!", colors::red);
});
fm.events().click(API::exit);
fm.show();
exec();
}
Run Code Online (Sandbox Code Playgroud)
在开始的行中使用的C++特性是什么:drawing {fm} .draw ...
我从来没有见过这样的用法.