小编The*_*ine的帖子

linux、C++、xft:如何使用它?

我尝试使用Xft的教程,以及让他们打电话的是一个教程...看起来就像是写在朝鲜的阵营......我也发现了这一个。所以让我试着一步一步地做:

// g++ XftTest.cc -lX11 -lXft `pkg-config --cflags freetype2`
#include<unistd.h>
#include<X11/Xlib.h>
#include<X11/Xutil.h>
#include<X11/Xft/Xft.h>
int main()
{
  Display *display;
  XftFont      *font;
  XftDraw      *xftdraw;
  XRenderColor xrcolor;
  XftColor     xftcolor;

  display = XOpenDisplay(0);
  Window XP = XCreateSimpleWindow(display,DefaultRootWindow(display),0,0,360,90,0,0,0);
  XMapWindow(display,XP);

  font = NULL; /* added 6/16 */

  //font = XftFontOpenName(display,0,"NorthKorea-50"); // how to check if this is good ?
  font = XftFontOpenName(display,0,"") /* added 6/16 */
  if (!font) return 1;

  xftdraw = XftDrawCreate(display,XP,DefaultVisual(display,0),DefaultColormap(display,0));

  xrcolor.red  =65535;
  xrcolor.green=0;
  xrcolor.blue =0;
  xrcolor.alpha=65535;
  XftColorAllocValue(display,DefaultVisual(display,0),DefaultColormap(display,0),&xrcolor,&xftcolor);

  XftDrawString8(xftdraw, &xftcolor, …
Run Code Online (Sandbox Code Playgroud)

c++ linux fonts xlib

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

使用autogen.sh与ExternalProject_Add

我尝试在CMakeLists.txt中设置ExternalProject_Add,

为此,我发现了这个问题:

CMake EXTERNALPROJECT_ADD与Git存储库的正确用法是什么?

但是我有一个问题,我不能打电话CONFIGURE_COMMAND configure,因为我必须打电话./autogen.sh来生成configure.ac.我没有找到如何使cmake运行./autogen.sh

linux configure cmake autogen external-project

4
推荐指数
1
解决办法
1322
查看次数

c ++,调用没有()的函数,这是什么意思?

五分钟前我做了一些我从未做过的事情(这不是关于性......)看看代码:

// g++ DeathToAllButMetal.cc
#include<iostream>

void DeathToAllButMetal(){
  std::cout << "A MASTERPIECE MADE BY STEEL PANTHER" << std::endl;
} 

int main(){
  DeathToAllButMetal();

  DeathToAllButMetal;

  return 0;
}
Run Code Online (Sandbox Code Playgroud)

你看到我忘了"()"在第二个DeathToAllButMetal令人惊讶的编译器不会对我大喊大叫.所以对于编译器来说,这行代码意味着什么,但是什么呢?因为在跑步时,方法没有被调用......这看起来是一个基本问题,但我不记得曾经看过这个问题.

c++ g++

3
推荐指数
1
解决办法
1299
查看次数

我不明白的默认构造函数

我有这个代码:

#include <iostream>

class ZombieFetus{
  private:
  public:
  ZombieFetus();
};

ZombieFetus::ZombieFetus(){
  std::cout << "http://www.metal-archives.com/band/view/id/55878" << std::endl;
};

class FaceOfAVirus{
  private:
  public:
  FaceOfAVirus(int);
};

FaceOfAVirus::FaceOfAVirus(int i){
  std::cout << "http://www.metal-archives.com/band/view/id/74239" << std::endl;
};


int main(int argc, char **argv){
  std::cout << "some random bands :" << std::endl;
  ZombieFetus  band1();
  FaceOfAVirus band2(0);
}
Run Code Online (Sandbox Code Playgroud)

编译:

$  g++ main.cc -Wall
Run Code Online (Sandbox Code Playgroud)

当我运行它时,我得到了:

some random bands :
http://www.metal-archives.com/band/view/id/74239
Run Code Online (Sandbox Code Playgroud)

到底是什么ZombieFetus band1();?该计划是什么?这听起来像是一个初学者的问题,如果已经在stackoverflow上回答了,请给我链接...我找不到答案......

回答所有回答的人和所有的coatorators

(你有点太多了,无法一个接一个)

c++ linux constructor g++ default-constructor

2
推荐指数
1
解决办法
350
查看次数

什么是Linux上opengl的DirectDraw Surface(DDS)格式的等价物?

DDS格式是针对directX做的吗?所以应该针对它进行优化,而不是针对openGL进行优化.

那么,还有另一种格式吗?如果是的话,什么格式是一个不错的选择?是什么原因?

另外,既然我在linux上工作,我也担心在linux上制作纹理.所以我需要一种可以由gimp导入/导出的格式.

linux opengl

2
推荐指数
1
解决办法
3148
查看次数

glib,如何处理 GError 的东西?

我有这个功能:

static
void ReadFilesInDirectory(const std::string &target)
{
    GDir *dir;
    GError *error;
    const gchar *filename;
    gchar* pathPlusFilename;

    dir = g_dir_open(target.c_str(), 0, &error);
    while ((filename = g_dir_read_name(dir)))
    {
        pathPlusFilename = g_build_filename(target.c_str(),filename,(gchar*)NULL);
        if( g_file_test(pathPlusFilename ,G_FILE_TEST_IS_REGULAR) )
        {
            std::cout << "(file)      " << pathPlusFilename << std::endl;
        }
        else
        {
            if( g_file_test(pathPlusFilename ,G_FILE_TEST_IS_DIR) )
            {
                std::cout << "(directory) " << pathPlusFilename << std::endl;
                chdir(filename);
                ReadFilesInDirectory(pathPlusFilename);
            }
        }
    }
    if(error) g_error_free(error); // gives an error at running time
    g_free(pathPlusFilename);
    g_dir_close(dir);
}
Run Code Online (Sandbox Code Playgroud)

有一个 GError 变量,但我不知道如何从 GError 中打印一些东西, …

c++ linux glib

2
推荐指数
1
解决办法
4397
查看次数

如何测试get_children()返回的小部件的类型?

使用get_children()上的Gtk::Container返回std::vector<Gtk::Widget*>(由容器包含窗口小部件).

一个Gtk::Entry从继承Gtk::Widget.当然具体的Gtk::Entry功能就像get_text()不能被a调用Gtk::Widget.

为了解决这个问题,我可以投Gtk::WidgetGtk::Entry,但你现在看到的问题,我该怎么处理,如果有一些其他的部件在容器中,让说了Gtk::Button

  for ( auto* widgetOfTheEvilDead : ContainerCoffin->get_children() ) 
  {
    if ( widgetOfTheEvilDead->get_visible() /*shared by all widget*/ )
    {
      // do something if i'm an entry, e.g.:
      text = static_cast<Gtk::Entry*>( widgetOfTheEvilDead )->get_text();

      if ( text == "Rotting Christ")
        this->music->play("Lucifer Over Athens");
    }

  }
Run Code Online (Sandbox Code Playgroud)

要完整,在我的情况下,我没有使用Gtk::Entry但我自己的小部件继承自Gtk::Entry:

class Tombstone
: public Gtk::Entry
{
.
.
. …
Run Code Online (Sandbox Code Playgroud)

c++ gtkmm c++14

2
推荐指数
1
解决办法
410
查看次数

cmake/make - 无法识别的命令行选项"-std = c ++ 14" - 但是G ++可以

我今天在服务器上的主文件夹中编译gcccmake(按此顺序)(服务器上的编译器已经使用了5年,我需要C++14功能......).

我按命令编译时没有问题,

g++ -std=c++14 main.cc
Run Code Online (Sandbox Code Playgroud)

但如果我使用cmake .那么make,我得到了这个错误:

cc1plus: error: unrecognized command line option "-std=c++14"
Run Code Online (Sandbox Code Playgroud)

在CMakeLists.txt中:

add_definitions(-std=c++14)
Run Code Online (Sandbox Code Playgroud)

在CMakeFiles/a.out.dir/flags.make中

CXX_FLAGS = -I/home/jager/manufacture/usr/local/include -std=c++14
Run Code Online (Sandbox Code Playgroud)

供参考:

$ g++ --version
g++ (GCC) 5.2.0
Copyright (C) 2015 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

$ cmake --version
cmake version 3.3.2

CMake suite maintained and supported …
Run Code Online (Sandbox Code Playgroud)

compiler-errors makefile g++ cmake c++14

2
推荐指数
2
解决办法
3万
查看次数