小编Mat*_*gan的帖子

基本Qt应用程序的Valgrind:报告Masive Leaks

所以我想看看在通过Valgrind运行时从简单的Makefile编译的基本Qt4应用程序会发生什么.什么会导致这些泄漏?我正在删除任何动态分配的对象.退出程序时,我只点击右上角的关闭(X).GUI库是不是"free()"他们malloc()的任何内存?

从qmake命令减少的Makefile是:

####### Compiler, tools and options

CXX           = g++
CXXFLAGS      = -pipe -O2 -Wall -W
LIBS_INCLUDE  = ${HOME}
INCPATH       = -I$(LIBS_INCLUDE)/QtSDK/Desktop/Qt/473/gcc/mkspecs/default \
                -I. \
                -I$(LIBS_INCLUDE)/QtSDK/Desktop/Qt/473/gcc/include/QtCore \
                -I$(LIBS_INCLUDE)/QtSDK/Desktop/Qt/473/gcc/include/QtGui \
                -I$(LIBS_INCLUDE)/QtSDK/Desktop/Qt/473/gcc/include 
LINK          = g++
LFLAGS        = -Wl,-O1 -Wl,-rpath,$(LIBS_INCLUDE)/QtSDK/Desktop/Qt/473/gcc/lib
LIBS          = $(SUBLIBS)  -L$(LIBS_INCLUDE)/QtSDK/Desktop/Qt/473/gcc/lib -lQtGui -lQtCore -lpthread
QMAKE         = $(LIBS_INCLUDE)/QtSDK/Desktop/Qt/473/gcc/bin/qmake
OBJECTS_DIR   = ./
SOURCES       = main.cpp
OBJECTS       = main.o
QMAKE_TARGET  = Main
TARGET        = Main

####### Build rules
first: all

all: $(TARGET)

$(TARGET):  $(OBJECTS)
        $(LINK) $(LFLAGS) -o $(TARGET) $(OBJECTS) …
Run Code Online (Sandbox Code Playgroud)

c++ qt valgrind memory-leaks

9
推荐指数
1
解决办法
2789
查看次数

C++错误:使用不完整类型无效...

我有一个中小型项目,我正在为本学期的软件工程课程做.我选择用C++(gtkmm)来做.到目前为止我做得还不错但是我遇到了循环引用或以下错误的问题:

Login_Dialog.cpp:25: error: invalid use of incomplete type ‘struct MainWindow’
Login_Dialog.h:12: error: forward declaration of ‘struct MainWindow’
make: *** [Login_Dialog.o] Error 1
Run Code Online (Sandbox Code Playgroud)

总之,我有大约10个班级,我知道将来他们都需要互相交谈.到目前为止,我遇到了一个特定的案例,我一直试图自己解决这个问题,但我完全陷入困境.

我的程序有一个主窗口类,定义如下:

/*
 * MainWindow.h
 */

#ifndef MAINWINDOW_H_
#define MAINWINDOW_H_

#include "includes.h"

#include "ModelDrawing.h"
#include "ViewDrawing.h"
#include "ControlerDrawing.h"
#include "ModelChat.h"
#include "ViewChat.h"
#include "ControlerChat.h"
#include "ModelQueue.h"
#include "ViewQueue.h"
#include "ControlerQueue.h"
#include "Login_Dialog.h"
#include "TCP_IP_Socket.h"

class MainWindow : public Window
{
public:
 MainWindow(int type);
 ~MainWindow();

 void on_menu_file_new_generic();
 void on_menu_file_quit();

 ModelDrawing* get_mdl_Draw();
 ViewDrawing* get_view_Draw();
 ControlerDrawing* get_cntrl_Draw();

 ModelChat* get_mdl_Chat();
 ViewChat* get_view_Chat(); …
Run Code Online (Sandbox Code Playgroud)

c++

7
推荐指数
1
解决办法
5万
查看次数

C++语法/语义问题:引用Function和typedef关键字

typedef int (&rifii) (int, int)用什么?

这个"声明"之前的typedef是什么?我想把它想象成这样

typedef (int (&rifii) (int, int)) [new name]
Run Code Online (Sandbox Code Playgroud)

但如果你这样做的话,[新名字]并不存在

typedef int INTEGER;
Run Code Online (Sandbox Code Playgroud)

类似的问题,以下语法:

typedef void (*PF) ();

PF edit_ops[ ] = { &cut, &paste, &copy, &search };
PF file_ops[ ] = { &open, &append, & close, &write };

PF* button2 = edit_ops;
PF* button3 = file_ops;

button2[2]( );
Run Code Online (Sandbox Code Playgroud)

什么是typedef允许?它是否正在制作,因此您无需键入:

void (*PF) ();
(void (*PF) ()) edit_ops[ ] = { &cut, &paste, &copy, &search };
(void (*PF) ()) file_ops[ ] = { &open, &append, …
Run Code Online (Sandbox Code Playgroud)

c++ typedef function-pointers reference

7
推荐指数
1
解决办法
2086
查看次数

Linux发行版上的windeployqt.exe

在Windows中,您可以运行windeployqt.exe来近似Qt应用程序的库,qml和插件依赖项.

在Linux中,我可以使用ldd来确定库依赖项,但我还没有找到一种方法来确定需要存在哪些额外的Qml文件以及我应该在安装程序中包含哪些插件.有什么建议?

linux qt dependencies

7
推荐指数
1
解决办法
1752
查看次数

使用 CPack 创建 Brew 包

一直在寻找这个,但找不到示例或好的文档。有没有人有如何使用 cmake 中的 cpack 创建 brew 包的示例?

homebrew cmake cpack

7
推荐指数
1
解决办法
88
查看次数

OS X 上的 libg2o 链接器错误

我收到以下链接器错误:

cd /Users/mhoggan/Development/bluenote/image_pose_adjustment/image_pose_adjustment/native/graph/cmake-build-debug/src && /Applications/CLion.app/Contents/bin/cmake/bin/cmake -E cmake_link_script CMakeFiles/graph_optimization.dir/link.txt --verbose=1
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/c++    -std=c++11 -Wall -Werror -O3 -DNDEBUG -Wl,-search_paths_first -Wl,-headerpad_max_install_names  CMakeFiles/graph_optimization.dir/main.cpp.o CMakeFiles/graph_optimization.dir/BundleRigidGraphOptimizer.cpp.o CMakeFiles/graph_optimization.dir/FlexibleGraphOptimizer.cpp.o CMakeFiles/graph_optimization.dir/LoopClosure.cpp.o CMakeFiles/graph_optimization.dir/PoseJsonReader.cpp.o  -o graph_optimization  -L/Users/mhoggan/Development/bluenote/image_pose_adjustment/image_pose_adjustment/native/graph/cmake-build-debug/g2o-src/lib  /usr/local/lib/libboost_filesystem-mt.a /usr/local/lib/libboost_system-mt.a -lg2o_cli -lg2o_core -lg2o_interface -lg2o_parser -lg2o_solver_csparse -lg2o_solver_dense -lg2o_solver_pcg -lg2o_stuff -lg2o_types_icp -lg2o_types_sba -lg2o_types_sim3 -lg2o_types_slam2d -lg2o_types_slam3d -lg2o_csparse_extension -lcsparse -ljsoncpp -Wl,-rpath,/Users/mhoggan/Development/bluenote/image_pose_adjustment/image_pose_adjustment/native/graph/cmake-build-debug/g2o-src/lib 
Undefined symbols for architecture x86_64:
  "g2o::csparse_extension::cs_cholsolsymb(cs_sparse const*, double*, cs_symbolic const*, double*, int*)", referenced from:
      g2o::LinearSolverCSparse<Eigen::Matrix<double, -1, -1, 0, -1, -1> >::solve(g2o::SparseBlockMatrix<Eigen::Matrix<double, -1, -1, 0, -1, -1> > const&, double*, double*) in LoopClosure.cpp.o
  "g2o::csparse_extension::writeCs2Octave(char const*, cs_sparse const*, …
Run Code Online (Sandbox Code Playgroud)

macos cmake clang undefined-symbol g2o

6
推荐指数
1
解决办法
561
查看次数

实模式组装:在引导时不使用INT指令将字符打印到屏幕

以下站点"编写引导扇区代码"提供了一个代码示例,可在系统引导时将"A"打印到屏幕上.从我一直在阅读的不是你必须使用INT操作码让BIOS做某些事情?以下代码如何从上面引用的站点工作而不使用中断?代码的哪一部分实际告诉硬件将"A"打印到屏幕上?

有问题的代码:

.code16
.section .text
.globl _start
_start:
  mov $0xb800, %ax
  mov %ax, %ds
  movb $'A', 0
  movb $0x1e, 1
idle:
  jmp idle 
Run Code Online (Sandbox Code Playgroud)

附加原始问题

如果我使用以下代码,BIOS调用是否会为我写入文本缓冲区?缓冲区从地址0xb800开始?

   # Author: Matthew Hoggan
   # Date Created: Tuesday, Mar 6, 2012
   .code16                        # Tell assembler to work in 16 bit mode (directive)
   .section .text
   .globl _start                  # Help linker find start of program
   _start:
       movb $0x0e,     %ah        # Function to print a character to the screen                 
       movb $0x00,     %bh        # Indicate the page …
Run Code Online (Sandbox Code Playgroud)

assembly bios bootloader

5
推荐指数
1
解决办法
2805
查看次数

修改对内部数据的引用时更新STL优先级队列

假设我正在编写Dijkstra的算法,并且我有一个优先级队列,它将最短距离节点保持在顶部.然而,当我遍历图表时,我将更新到该顶点的距离.我已经引用了数据结构中包含的优先级队列中的所有顶点.现在,当我更新数据结构中的顶点时,我希望优先级队列中的数据能够适应这些变化,因此最近的节点始终位于顶部.但是,在使用调试器单步执行我的应用程序后,我注意到优先级队列不会自行更新.如何在不重新插入所有顶点的情况下执行此操作?

c++ dijkstra priority-queue

5
推荐指数
1
解决办法
2305
查看次数

等效的OpenGL ES 2.0 void glBindFragDataLocation的方法(GLuint程序,GLuint colorNumber,const char*name);

http://www.khronos.org/opengles/sdk/docs/man/上的在线文档未提供该glBindFragDataLocation(GLuint program, GLuint colorNumber, const char * name);方法的参考.在OpenGL es 2.0中,这相当于什么?

opengl-es-2.0

5
推荐指数
1
解决办法
1294
查看次数

c ++,cscope,ctags和vim:查找从这个继承的类

在具有几个层的相当大的代码库中,是否有一种方法可以在vim中或从命令行中找到从基类派生的所有类?grep是一个选项但可能很慢,因为grep没有索引.

c++ vim ctags cscope

5
推荐指数
1
解决办法
2384
查看次数