小编Avi*_*mar的帖子

虚拟机上的Linux内核

我正在研究Linux驱动程序编程,在其中,建议我使用自编译的Linux内核而不是任何发行版.我曾尝试在ubuntu中编译Linux 2.6.9,但该过程在'make menuconfig'阶段返回错误.

我宁愿在虚拟环境中使用Linux,这样我就可以无所畏惧地试验内核.那么,有什么方法可以在虚拟机中编译和运行Linux(比如安装在Windows上的VMware)?我可以使用live CD来编译内核.

简而言之,请建议,如何以无错误的方式在虚拟机中编译,安装和运行Linux内核?

我搜索并阅读了这个.但在重新启动计算机后执行这些步骤后,没有单独的Linux 3.2.17操作系统.但我的ubuntu 12.04现在显示3.2.17内核.虽然这是我第一次在ubuntu上编译整个内核而没有任何错误,但我想在其他分区上加载该内核并将其用作独立的操作系统.那么,如果有人可以告诉,除了教程中的步骤之外该怎么做才能实现这一目标?

compilation virtual-machine linux-kernel

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

最小 - 最大堆中的删除 - 最大操作

我正在实现一个min-max堆,一种双端优先级队列.您可以在此处查看有关最小 - 最大堆的更多信息.

insert和delete-min操作的代码很简单,可以在网上找到.但是,我也试图在min-max堆上实现delete-max操作.

最初,我觉得min-max堆中的delete-max与max-min堆中的delete-max相同(如果我们考虑包含最大元素的min-max堆的子树,它类似于max-min堆).因此,实现将是简单的,类似于min-max堆的delete-min.

但有个问题: 在此输入图像描述

从上图中可以看出,尽管70是最大元素,最小 - 最大堆的最后一个元素(12)不在包含70的子树中.因此,我可以用它来替换左子树中留下的间隙删除70后?

如果我们不使用该元素而是遵循max-min堆的delete-max过程并使用20来替换间隙,则插入堆中的下一个元素将是10的右子,并且永远不会有正确的子元素9.

那么,任何人都可以帮助我吗?

algorithm heap data-structures minmax-heap

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

对象的内存分配

当我们像int x在函数中一样在c ++中实例化变量(即x是局部变量)时,它被分配在进程的堆栈之上.但是如果我们这样做int *x= new int,空间就在堆中提供.

所以,我的问题是:

  1. 那些不同类的对象(由c ++或用户定义提供的类)怎么样?他们的对象在哪里被实例化?例如:Let Employee是一个类,我们声明Employee emp;.在emp堆栈或堆中给出space->的位置?

  2. 如果声明int a[4]在一个函数中,那么a在堆栈上获取所有四个获取空间的单元格吗?

c++ variables heap stack

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

cin.gcount() 及其应用

我写了下面的代码

#include< iostream>  
using namespace std;  
int main()  
{  
 char a[30];  
 cin.read(a,10);  
 cout<<(cin.gcount());  
  system("pause");  
  return 0;     
}  
Run Code Online (Sandbox Code Playgroud)

正如预期的那样,输出是 10...但是后来我编写了以下代码

#include< iostream>    
using namespace std;   
int main()    
{    
 char a[30];    
 cin>>a;   
 cout<<(cin.gcount());    
  system("pause");    
  return 0;       
}   
Run Code Online (Sandbox Code Playgroud)

我输入了“hello”,它存储在 a...这次输出是 0 而不是 5...如果 cin.gcount() 返回上次输入操作中读取的字节数,为什么会出现这种差异

c++

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

lfs 7.2编译glibc 2.16.0

我正在按照lfs中的过程制作一个linux系统.但是当我在这个页面上跟随第五步(即make之前的那一步)时,我最后得到一个错误.

 configure: error: linker with -z relro support required
Run Code Online (Sandbox Code Playgroud)

在此之后如果我打电话让我得到一个错误

 make: *** No targets specified and no makefile found.  Stop.
Run Code Online (Sandbox Code Playgroud)

我在ubuntu 12.04机器上运行它.
如何解决这个错误?

linux glibc linux-from-scratch

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

switch语句和增量运算符

我写了以下代码:

int i = 0;  
switch(i++)  
{
   case 0:  
     cout << 0;  
   case 1:  
     cout << 1;
}  
cout << "\n" << i;  
Run Code Online (Sandbox Code Playgroud)

代码的输出是这样的:

01  
1
Run Code Online (Sandbox Code Playgroud)

任何人都可以解释第一行输出?为什么0和1都被打印?

c++ switch-statement post-increment

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

在Windows Phone 8.1上捕获转储

我正在开发一个Windows Phone 8.1应用程序.我想添加一个功能,只要应用程序崩溃,就会捕获内存转储并将其写入日志.

我想知道当用户在手机上使用该应用程序并且崩溃时,是否有任何方法可以记录崩溃转储.我发现这个问题与我的相似,但适用于Windows 8.它说我们可以在App.xaml.cs中使用'Application_UnhandledException'方法来获取转储.但这种方法是否也支持在Windows Phone 8.1中,因为我没有在App.xaml.cs的自动生成内容中看到这一点(由Visual Studio生成并包含OnActivated,OnLaunched等功能)

UnhandledException事件处理程序是否在Windows Phone 8.1中执行此操作?

c# crash-dumps windows-phone-8

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

使用 MOSES 从印地语到英语的统计机器翻译

我需要使用 MOSES 创建一个印地语到英语的翻译系统。我有一个包含大约 10000 个印地语句子和相应英文翻译的平行语料库。我遵循了基线系统创建页面中描述的方法。但是,就在第一阶段,当我想标记我的印地语语料库并尝试执行

~/mosesdecoder/scripts/tokenizer/tokenizer.perl -l hi < ~/corpus/training/hi-en.hi> ~/corpus/hi-en.tok.hi
Run Code Online (Sandbox Code Playgroud)

,分词器给了我以下输出:

Tokenizer Version 1.1
Language: hi
Number of threads: 1
WARNING: No known abbreviations for language 'hi', attempting fall-back to English version...
Run Code Online (Sandbox Code Playgroud)

我什至尝试过,'hin'但它仍然无法识别该语言。谁能告诉制作翻译系统的正确方法。

hindi machine-translation moses

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

在模板的情况下包含头文件.

当我们创建一个类时,我们在头文件中声明它的函数并在源文件中定义它们......然后头文件可以包含在主文件中以使用该类...

但是如果我们在头文件中声明一个模板类并在.cpp文件中定义它,然后如果我们在主(包含int main)文件中包含头文件那么为什么会出现链接器错误......并且错误确实存在如果我们在主文件中包含.cpp文件(包含头文件),则不会出现...任何答案都是PLZ?

c++ templates header-files

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

clock()函数总是返回0

可能重复:
C clock()函数只返回零

我运行以下代码来测试clock()函数的工作情况.我在ubuntu 12.04上工作.

#include <stdio.h>
#include <time.h>
#include <iostream>
using namespace std;


double diffclock(clock_t clock1,clock_t clock2)
{
double diffticks=clock1-clock2;
double diffms=(diffticks*10)/CLOCKS_PER_SEC;
return diffms;
}

int main()
{
string name;
int i;
clock_t begin=clock();
cout << "Hi what is your name? ";
getline(cin, name);
clock_t end=clock();
cout << "Time elapsed: " << double(diffclock(end,begin)) << " ms"<< endl;
return 0;
}
Run Code Online (Sandbox Code Playgroud)

但无论我花多少时间写下我的名字,经过的时间总是显示为0ms.

你能告诉我这是什么问题吗?

c++ time clock

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