如何知道echo命令的版本,如echo echo的手册页中所指定 - echo输出版本的echo命令是echo命令或其文档中的一个错误.plz解释..同样是echo help的情况! !
在编写一些代码时遇到了这个问题:
#include <iostream>
class random
{
public:
random(){ std::cout << "yay!! i am called \n" ;}
};
random r1 ;
int main()
{
std::cout << "entry!!\n" ;
static random r2;
std::cout << "done!!\n" ;
return 0 ;
}
当我尝试编译此代码时,我得到错误
error: ârandomâ does not name a type.
当我为类使用一些不同的名称时,代码工作正常.
似乎random是在其他地方定义的(虽然编译器消息不是很有用).
我的问题是如何确保我使用的名称不会与包含文件中使用的名称冲突.我尝试过使用命名空间,但这会在调用时导致模糊不清.任何见解?
[编辑]
我使用名称空间作为using namespace myNSpace
但当我使用它,因为use myNSpace::random它工作正常.
跟进这个问题:
当我这样做include <iostream>.
它发生,它包括许多文件/usr/include.一个grep "\usr\include"超过g++ -E prog.cpp数约1260项).
他们是一种控制包括各种文件的方法吗?
平台:Linux
G ++版本:4.2.4
我需要在现有的长C源代码中进行一些更改.有一个顶级Makefile,它定义了各种编译器选项,如链接器使用的库的目录位置.
就像是 :
LD_OPTIONS = $(PATH_TO_MYLIB1) $(PATH_TO_MYLIB2)
Run Code Online (Sandbox Code Playgroud)
现在,我正在考虑使用dlsym()和dlopen()使用这些库而不是显式链接它们.为此,我需要库路径.
dlopen( path_to_lib , RTLD_NOW) ;
Run Code Online (Sandbox Code Playgroud)
如何使用PATH_TO_LIBMakefile中的变量并在我的程序中使用它?我想过用" echo和system()" 这样的东西.但是,我希望有更好的解决方案.:-)
在下面的代码中,$ ref引用的匿名数组的范围是可用的.
mod1.pm:
package mod1;
sub do_something{
.....
my $array_ref = ["elemnt1","elmnt2"] ;
return $array_ref ;
}
1;
file.pl
use mod1;
my $ref = mod1::do_something() ;
print "$ref->[0] $ref->[1] " ; #works
我最近开始研究一些我发现与我的兴趣相关的开源项目.
在这个启动期间,我遇到了一些我不熟悉的术语/内容,比如配置,工具链,binutils等,我同意这取决于你正在进行的项目类型.
现在我的问题是,在开始处理项目之前,开发人员应该知道一些明确的要求吗?
任何帮助/参考将不胜感激.
编辑:
我在大多数项目中看到了GNU配置和构建系统.如果有人讨厌它" GNU配置和构建系统 "是一个很好的起点.
我想这可能早些时候被问过,但我找不到满足我要求的那个.
我正在尝试分析各种测试套件中的代码流,从而调试(实际上是试图理解)一个大型项目.但是当我尝试在某些文件中设置断点时,我收到错误"找不到名为filename的源文件".
所以我的问题是:
b filename:*任何见解都非常受欢迎.
编辑
我用一些hello world代码检查了这些问题,并找到了其中一个答案中指出的相同结果.但我在实际项目中的问题仍然存在.即使我可以看到同一行的编辑输出不被接受为断点,我仍然会得到相同的错误.
编辑2
我得到它的工作,但不明白它是如何以及为什么工作.. ??
(gdb) b /home/neeraj/BTP/trunk/include/header.h:872
No source file named /home/neeraj/BTP/trunk/include/header.h:872
Make breakpoint pending on future shared library load? (y or [n]) n
(gdb) b /home/neeraj/BTP/trunk/src/driver.cpp:2
Breakpoint 1 at 0x806c61a: file ../../../trunk/src/driver.cpp, line 2.
(gdb) b /home/neeraj/BTP/trunk/include/header.h:872
Breakpoint 2 at 0x8052fa0: file ../../../trunk/include/header.h:872, line 872.
(gdb)
任何更深入的见解..?
我有一个实现引用计数机制的对象.如果对它的引用数变为零,则删除该对象.
我发现我的对象永远不会删除,即使我完成了它.这导致内存过度使用.我所拥有的只是对象的引用数量,我想知道引用它的位置,以便我可以编写适当的清理代码.
有没有办法完成这个而不必在源文件中grep?(那会非常麻烦.)
在阅读我遇到的代码时,结构的以下定义和初始化:
// header file
struct foo{
char* name;
int value;
};
//Implementation file
struct foo fooElmnt __foo;
// some code using fooElmnt
struct foo fooElmnt __foo = {
.name = "NAME";
.value = some_value;
}
Run Code Online (Sandbox Code Playgroud)
这在C中意味着什么?它与通常的声明有什么不同?
我在头文件中有一个宏定义,如下所示:
// header.h
ARRAY_SZ(a) = ((int) sizeof(a)/sizeof(a[0]));
Run Code Online (Sandbox Code Playgroud)
这在一些头文件中定义,其中包含一些更多的头文件.
现在,我需要在一些没有其他理由包含的源文件中使用此宏header.h或包含任何其他头文件header.h,因此我应该在源文件中重新定义宏或只是包含头文件header.h.
后一种方法会影响代码大小/编译时间(我认为是),还是运行时(我认为没有)?
你的建议!
c++ ×5
c ×3
include ×2
definition ×1
echo ×1
g++ ×1
gdb ×1
header-files ×1
iostream ×1
linux ×1
makefile ×1
open-source ×1
perl ×1
scope ×1
struct ×1