草庐IT

c++ - 定义中的const值参数而不是声明中的const值参数真的是C++吗?

这类似于(但不同于)thisquestion.下面是一些简单的测试代码,用于说明我在SunCC中发现的一些怪异之处://---------------main.cpp#include"wtc.hpp"intmain(int,char**){testyt;t.lame(99);return0;}//--------------wtc.hpp#ifndefWTC_HPP_INCLUDED#defineWTC_HPP_INCLUDEDclasstesty{public:voidlame(int);};#endif//---------------wtc.cpp#include#include

c++ - 无法在 Solaris 10 上使用 GCC 5.5 包含 cmath

我正在尝试使用gcc5.5.0在我的Solaris10sparc机器上运行以下测试程序#include#includeintmain(){std::cout这是操作系统的详细信息,~$uname-aSunOSsovms5775.10Generic_147147-26sun4vsparcSUNW,SPARC-Enterprise-T5220~$cat/etc/releaseOracleSolaris101/13s10s_u11wos_24aSPARCCopyright(c)1983,2013,Oracleand/oritsaffiliates.Allrightsreserved.Asse

c++ - 为什么 sun C++ 编译器在使用调试信息进行编译时会更改符号名称?

我有这个源文件://ConstPointer.cppconstshort*constconst_short_p_const=0;constshort*const_short_p=0;并使用和不使用调试信息对其进行编译(SUNC++编译器5.10):#CCConstPointer.cpp-c-oConstPointer.o#CC-gConstPointer.cpp-c-oConstPointer-debug.o以下是目标文件的符号名称没有调试信息:#nm-CConstPointer.oConstPointer.o:[Index]ValueSizeTypeBindOtherShndxNam

c++ - 在 solaris 上链接 zeromq 静态库

我想在我的构建中链接zeromq库,这样它们就不必单独安装在最终用户的机器上。我使用以下方法配置了zeromq:./configure--enable-static--disable-shared--prefix=/home/xx/out但是当我这样做的时候:g++-ozclientzmqclient.o/home/xx/out/lib/libzmq.a我收到链接错误:Undefinedfirstreferencedsymbolinfilerecv/opt/zmq/out/lib/libzmq.a(libzmq_la-signaler.o)send/opt/zmq/out/lib/li

c++ - solaris (x86) 上std::basic_string 的一些疑惑

solaris(x86)上std::basic_string的一些困惑#include#includeintmain(){constwchar_t*s=L"abcdef";std::wstringws(s,s+6);for(inti=0;i运行结果为:9799101000为什么不是979899100101102代码#include#includeintmain(){constwchar_t*s=L"abcdef";std::wstringws;ws.resize(6);for(inti=0;i可以得到预期的结果。我使用gcc3.4.6,构建命令是g++-fshort-wcharstri

c++ - 有没有办法加快 Solaris Sun Studio 12 中的 C++ 编译时间?

因为我是在一个服务器机器上编译我的C++代码(总共32或64个内核),有没有办法调整编译器选项来加快编译时间?例如。告诉编译器使用多线程编译独立的.cpp文件。 最佳答案 SunStudio在包含的dmake版本的make中包括并行构建支持。参见thedmakemanual了解详情。 关于c++-有没有办法加快SolarisSunStudio12中的C++编译时间?,我们在StackOverflow上找到一个类似的问题: https://stackoverfl

c++ - Solaris C++ 流输入 >> 模板的运算符和模板

我可以在CC编译器中使用一个编译器选项来获取以下代码(在VisualC++中编译良好)std::vector>v2;没有下面的错误Error:","expectedinsteadof">>" 最佳答案 试试这个:std::vector>v2;//giveaspacebetweentwo'>'“>>”被解释为右移运算符,因此您会遇到编译时错误。此问题将在C++0x中得到修复。看看here. 关于c++-SolarisC++流输入>>模板的运算符和模板,我们在StackOverflow上找到

c++ - 这是 Solaris Studio 中的一个错误吗?

源代码(在问题的末尾)将引发我认为是SolarisStudio(而不是其他编译器)上的错误处理。为清楚起见,错误消息已重新格式化为新行:"overload.cpp",line44:Error:runGenEntries>(constGenEntryRuleDriven&,conststd::vector&)andrunGenEntries>(constGenEntryRulesDriven&,conststd::vector&)havesameexternname"__1cNrunGenEntries4nDstdGvector4Cin0AJallocator4Ci_____6FrkTA

C++ 如何在 Unix 中获取正在执行的 .so 模块的文件名(和路径)

C++如何在Unix中获取正在执行的.so模块的文件名(和路径)?类似于Windows上的GetModuleFileName的东西。 最佳答案 尽管它不是POSIX标准接口(interface),dladdr()功能在许多系统上都可用,包括Linux,Solaris,Darwin/MacOSX,FreeBSD,HP-UX,和IRIX.此函数获取一个地址,例如可以是指向模块内静态函数的指针(如果转换为void*),并用信息填充Dl_info结构包括包含该地址的共享对象的路径名(在dli_fname成员中)。

c++ - 在 UNIX 上分配给 C++ 程序的初始堆大小

通常分配给在基于UNIX的操作系统上运行的C++程序的初始堆大小是多少?如果g++编译器在这方面发挥作用,它是如何决定的? 最佳答案 对于C++,无论是什么平台,堆几乎总是通过根据需要向操作系统请求更多内存来动态扩展。在一些嵌入式平台或一些非常老的平台上,这可能不是真的,但由于环境的性质,你可能非常清楚你有多少堆。在Unix平台上,这是双重事实。甚至大多数Unix嵌入式平台也是这样工作的。在像这样工作的平台上,库通常没有任何类型的内部限制,而是依赖于操作系统来告诉它它不能再有内存了。尽管出于各种原因,您实际请求的内存比可用内存多,但