- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我有使用 opengl 和 CGAL 的 c++ qt 项目,但我有以下错误:
/usr/include/c++/7/cstdlib:75:15: fatal error: stdlib.h: No such file or directory
#include_next <stdlib.h>
我搜索了关于 -DENABLE_PRECOMPILED_HEADERS=OFF 的问题和大部分解决方案我在 .pro 文件中使用它,但它没有解决问题。
.pro 文件:
QT += core gui opengl
QT += xml
greaterThan(QT_MAJOR_VERSION, 4): QT += widgets
TARGET = try_gui
TEMPLATE = app
DEFINES += QT_DEPRECATED_WARNINGS
#DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0x060000 # disables all the APIs deprecated before Qt 6.0.0
DENABLE_PRECOMPILED_HEADERS=OFF
SOURCES += \
main.cpp \
mainwindow.cpp \
my_polyhedron.cpp \
myqglwidget.cpp
HEADERS += \
mainwindow.h \
my_polyhedron.h \
myqglwidget.h \
My_Halfedge_base.h \
My_Face_base.h
FORMS += \
mainwindow.ui
LIBS += -L/lib64 -lgmp -lCGAL
INCLUDEPATH +=/usr/include
当我从 .pro 文件中删除 INCLUDEPATH +=/usr/include 时问题就解决了
但是关于到达 CGAL 出现了另一个错误:
/usr/include/boost/graph/detail/adjacency_list.hpp:1755:5: note: template argument deduction/substitution failed:
../try_gui/my_polyhedron.cpp:203:78: note: ‘Surface {aka CGAL::Polyhedron_3<CGAL::Simple_cartesian<double> >}’ is not derived from ‘const boost::adj_list_helper<Config, Base>’
.edge_index_map (boost::get(CGAL::edge_external_index ,surface))
^
../try_gui/my_polyhedron.cpp: In member function ‘void My_Polyhedron::drawTree(MyQGLWidget*, int)’:
../try_gui/my_polyhedron.cpp:329:27: error: ‘class CGAL::Kd_tree_node<CGAL::Search_traits_3<CGAL::Simple_cartesian<double> >, CGAL::Fair<CGAL::Search_traits_3<CGAL::Simple_cartesian<double> >, CGAL::Plane_separator<double> >, CGAL::Boolean_tag<true> >’ has no member named ‘size’
if(leaves[i]->size() < 1) continue;
^~~~
../try_gui/my_polyhedron.cpp:331:52: error: ‘class CGAL::Kd_tree_node<CGAL::Search_traits_3<CGAL::Simple_cartesian<double> >, CGAL::Fair<CGAL::Search_traits_3<CGAL::Simple_cartesian<double> >, CGAL::Plane_separator<double> >, CGAL::Boolean_tag<true> >’ has no member named ‘begin’
Tree::Point_d_iterator it = leaves[i]->begin();
n file included from /usr/include/CGAL/subdivision_method_3.h:31:0,
from ../try_gui/my_polyhedron.cpp:6:
/usr/include/CGAL/Subdivision_method_3/subdivision_methods_3.h: In instantiation of ‘void CGAL::Subdivision_method_3::Sqrt3_subdivision(PolygonMesh&, int) [with PolygonMesh = My_Polyhedron]’:
../try_gui/my_polyhedron.cpp:175:60: required from here
/usr/include/CGAL/Subdivision_method_3/subdivision_methods_3.h:236:16: error: no type named ‘type’ in ‘struct boost::property_map<My_Polyhedron, boost::vertex_point_t, void>’
Sqrt3(pmesh, Sqrt3_mask_3<PolygonMesh>(&pmesh, get(vertex_point,pmesh)), step);
有什么帮助吗?
最佳答案
我通过添加来解决问题QMAKE_CFLAGS_ISYSTEM = -I
到 .pro 文件
关于c++ -/usr/include/c++/7/cstdlib :75:15: fatal error: stdlib. h : No such file or directory #include_next <stdlib. h>,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52532936/
我正在将 cpp 文件从 Windows 8 64 位机器交叉编译到 ARM-Cortex M。一切正常,但当我需要 stdlib 时,它会给我以下错误: C:\Program Files (x86)
这是一个家庭作业问题,但它只是一个更大项目的一小部分。限制之一是我们不得以任何理由使用 STL。 我尝试使用 ctime 和递增修饰符来汇总我自己的 rand() 函数。我认为即使这没有一致的种子,该
找不到问题的确切答案: 释放内存并再次分配是不使用 cstdlib 重新分配内存的唯一方法吗?如果不是,那么可能的解决方案是什么? 提前致谢。 最佳答案 如果您正在实现自己的 vector 类,那么您
我在我的 Objective C 测试项目中集成了 SpiderMonkey 库。在 main.mm(对于 C++,我将其重命名为 .mm)中,我导入了文件 #include "jsapi.h" 编译
所以我一直在尝试开始编程,并且一直在学习我找到的教程。我已经多次检查我的输入并不断收到相同的错误“未定义对'WinMain@16'的引用”因为我是新手我不理解我在网上找到的任何解释。 请帮忙 #inc
我有一个正常情况下编译良好的应用程序。它使用两个“非标准”函数(如果我没记错的话,都在 cstdlib 中):sleep() 和 daemon()。更新我的系统后,我发现我的程序将不再编译(它仍然可以
在几乎默认安装的 Ubuntu 11.04 上,我安装了 clang。 我正在尝试编译这个: #include int main(){ return 0; } g++ 可以很好地处理它,但是 c
我将我的系统升级到 fedora 33,之后我发现 stdlib.h 无法解析某些数据结构: In file included from /usr/include/c++/10/cstdlib:75,
我正在尝试构建我的第一个 NDK 库,但在编译时出现错误: .../cstdlib:53: error: '::clearenv' has not been declared 我不能将 C 标准库与
我正在尝试从 cstdlib 运行 qsort。功能 qsort( m_all_animals , numberOfAnimals() , sizeof(Animal*) , compare); 执行
我正在 cstdlib malloc() 和 free() 函数之上创建自定义内存分配器(出于性能原因)。分配器位于一个简单的类中,该类存储一些内存缓冲区和其他参数。我想将释放内存的方法命名为 fre
我只是改变搜索路径来通知 Xcode opencv 所在的位置。这是我的搜索路径: Framework search path: /usr/local/lib Library search path:
我正在开发一个 C++ 项目,其中包括一些来自第三方的 C 代码。我的build设置是“桌面 Qt 5.1.1 MSVC2012 64 位”,这显然是在 Windows 上使用 Qt Creator
写C++代码时有什么区别: #include 和 #include 除了前者主要包含在 std:: 命名空间中? 除了编码标准和风格之外,还有什么理由使用其中一种吗? 最佳答案 第一个是 C++
根据我正在阅读的书,rand()需要 #include 在 C++ 中 但是,我能够编译以下使用 rand() 的代码没有 #include 也不是 using namespace std;在 Vis
请告诉我为什么这段代码是用 C++11 标准编译的: #include using namespace std; int main() { abs(-12); exit(1); retu
以下代码会引发许多错误: namespace ns1 { #include ... } /usr/include/c++/4.9/cstdlib:118: error: '::d
这是我的代码: char* ToC(char src[STRING_SIZE], char* dest) { if ( src[0] == 0 ) dest = NULL;
我明白 rand() ,作为来自 的示例函数, 存在于全局和 std 中命名空间。 实际上,以下内容将编译无误,即两次调用 std::rand()和 rand()将是合法的。 #include
所以我创建了一个简单的函数来获取当前日期和时间。当我在我的 Windows 机器上的 Visual Studio 中测试它时,它工作正常。 这些是为了让我的日期时间功能起作用而包含的目录: #incl
我是一名优秀的程序员,十分优秀!