我想在当前文件夹中搜索宏CODE_INIT_PARAMETERS的所有文件.我可以做Mx出现CODE_INIT_PARAMETERS但这只显示来自开放缓冲区的条目.
有没有办法从Emacs搜索当前文件夹中的所有文件,而无需切换到Mx shell然后grep?我想避免使用grep,因为对于某些命令(Mx发生),Emacs会跳转到违规代码,我也想要这样做.谢谢.
我有一个二进制文件和一个共享库.共享库编译为:
all:
g++ -g -shared -fpic $(SOURCES) -o libmisc.so
Run Code Online (Sandbox Code Playgroud)
二进制编译用:
LIBS=-L../../misc/src
LDFLAGS=-lmisc
all:
g++ -g -o mainx $(INCLUDE) $(SOURCE) $(LIBS) $(LDFLAGS)
Run Code Online (Sandbox Code Playgroud)
我开始了 ~/.bashrc
export LD_LIBRARY_PATH=/mnt/sda5/Programming/misc/src/
Run Code Online (Sandbox Code Playgroud)
到libmisc.so输出路径.
从控制台调试工作正常:
gdb mainx
Run Code Online (Sandbox Code Playgroud)
但是从Emacs22启动gdb失败,并显示以下消息:
启动程序:/ mnt/sda5 /编程/ main/src/mainx/mnt/sda5 /编程/ main/src/mainx:加载共享库时出错:libmisc.so:无法打开共享对象文件:没有这样的文件或目录
这一刻看起来很棘手,我无法解决它.我不确定这是否是emacs的问题,或者我应该在gdb的命令行中传递一个参数.
我找不到答案,但我很确定我不是第一个寻找答案的人.没有人知道/使用/看到一个像STL容器用双向有权访问迭代O(1)复杂的插入/删除/查找 ?
谢谢.
我问题的最接近的线程在这里.我试图用gcc编译以下代码:
#include <malloc.h>
class A
{
public:
A(){};
~A(){};
};//class A
int main()
{
A* obj = (A*) malloc( sizeof(A) );
if(obj==0) return 1 ;
obj->A::A(); /*error: invalid use of 'class A' */
obj->A::~A();
free(obj);
return 0;
};//
Run Code Online (Sandbox Code Playgroud)
从命令行我编译代码:
$ g++ -o main main.cpp main.cpp: In function 'int main()': main.cpp:22: error: invalid use of 'class A'
你能指点我正确的方向吗?
我尝试没有任何结果.我的代码看起来像这样:
#include "stdafx.h"
#include <iostream>
#define R() ( rand() )
#define H(a,b) ( a ## b )
#define S(a) ( # a )
#define CAT() H(S(distinct_name_), R())
int main(int argc, _TCHAR* argv[])
{
std::cout << CAT() << std::endl;
std::cout << CAT() << std::endl;
std::cout << CAT() << std::endl;
return 0;
}
Run Code Online (Sandbox Code Playgroud)
我想得到这样的结果:
distinct_name_12233
distinct_name_147
distinct_name_435
as a result of concatenating
distinct_name_ (##) rand()
Run Code Online (Sandbox Code Playgroud)
现在我收到一个错误:term不会计算为带有1个参数的函数.这可以实现吗?
编辑:几个小时后我终于成功了.预处理器仍然做我完全无法理解的奇怪事情.在这里:
#include "stdafx.h"
#include <iostream>
class profiler
{
public:
void show()
{
std::cout << "distinct_instance" << …Run Code Online (Sandbox Code Playgroud) 问题是:
a)以下代码是否合法?(考虑到它在运行时崩溃)
b)如果在编译时有gcc或MVC的编译器标志显示,则以下代码中存在潜在问题?
#include <iostream>
using namespace std;
class A
{
public:
void write(){ cout<<"A"; }
};
class B
{
public:
virtual void write(){ cout<<"B"; }
};
int main()
{
A *pa=(A*) new B();
pa->write();
B *pb=(B*) new A() ;
pb->write();
delete pa;
delete pb;
return 0;
}
Run Code Online (Sandbox Code Playgroud)
谢谢!
我一直在阅读ISO 14882:2003.它说:
S-CHAR:
源字符集除了双引号",反斜线\,或换行字符的任何成员 转义序列
通用字符名称
现在,关于换行符,当行结尾为'\ r'时,我看到一个问题,
我写了一个小cpp程序:
#include <fstream>
#include <string>
int main()
{
const char* program=""
"#include <string>\n"
"int main()\n"
"{\n"
" std::string s;\n"
" //s=\"\r"
" //\r"
" //\r"
" //\r"
" //\";\n"
" s=\"\\xAE\\xfffactory\\xAE\\xffaction\";\n"
" return 0;\n"
"}\n"
;
std::ofstream file("file.cpp", std::ios_base::trunc);
file << program;
file.close();
return 0;
}
Run Code Online (Sandbox Code Playgroud)
在Windows上,file.cpp(在VS编辑器中读取)是:
#include <string>
int main()
{
std::string s;
//s="
//
//
//
//";
s="\xAE\xfffactory\xAE\xffaction";
return 0;
}
Run Code Online (Sandbox Code Playgroud)
编译file.cpp时,VS触发并在第6行中出错,而不是第10行.
在Linux上,file.cpp(如emacs中所读)是:
#include <string>
int main()
{
std::string s; …Run Code Online (Sandbox Code Playgroud)