草庐IT

c++ - cout 在终端中不显示任何内容

我只是想让我的C++代码在我的Mac终端中正确输出,但它没有显示任何内容。我使用xcode作为文本编辑器,将文件保存为Code.cpp,然后在终端中输入g++Code.cpp。在我的代码有错误时它显示错误之前,但现在它正确运行它不显示任何输出。有什么想法吗?这是我的代码:#includeusingnamespacestd;intmain(){cout这是我输入终端的内容,它只是跳到下一行,没有“HelloWorld”输出。jspencer$g++Code.cppjspencer$在此先感谢您的帮助! 最佳答案 g++是一个编译器。它

c++ - 如何在 OS X 上获取 C++ 手册页?

在Ubuntu中,安装libstdc++6-x.x-doc后,可以通过man获取文档,例如libstdc++-4.8-doc:manstd::listmanstd::weak_ptrmanstd::ios_base是否可以在OSX上安装c++的手册页(使用brew或任何其他方式)?特别需要手册页的原因是我可以使用SHIFT-K从vim访问它们。注意:我使用的是g++的XCode版本:snowch$g++-vConfiguredwith:--prefix=/Applications/Xcode.app/Contents/Developer/usr--with-gxx-include-di

c++ - 如何在 Xcode 中追踪 "libc++abi.dylib: Pure virtual function called!"

我有一个混合使用C++、Objective-C和Swift的多线程OSX应用程序。当我的应用程序关闭时,我在Xcode调试器窗口中看到:libc++abi.dylib:Purevirtualfunctioncalled!我知道这个错误通常是由在C++类构造函数或析构函数中调用虚函数引起的。有没有简单的方法可以找到它的位置?我所说的“简单”是指“不分析每个具有虚函数的类的每个构造函数和析构函数的每一行的调用树”。我没有看到堆栈跟踪。打印此消息时,调试器不会停止程序。从我的应用委托(delegate)的applicationDidTerminate方法记录的消息在此消息之前。我尝试在“所有

c++ - 仅当 .h 位于特定目录中时,g++ 才会神秘地失败

我在全新的OSX10.4.11+Xcode2.5安装中遇到了一个非常奇怪的问题。我已将其简化为最小的测试用例。这是test.cpp:#include"macros.h"intmain(void){return1;}这是macros.h:#ifndef__JUST_TESTING__#define__JUST_TESTING__templatevoidswap(T&pT1,T&pT2){TpTmp=pT1;pT1=pT2;pT2=pTmp;}#endif//__JUST_TESTING__如果两个文件都在同一目录中,则编译和工作正常。但是,如果我将macros.h放入/usr/inclu

c++ - ld 报告缺少符号,但符号似乎存在

我正在尝试将我的mac应用程序链接到精彩的libancillary图书馆。但是,我更改了库构建脚本以创建共享库。我可以使用nmlibancillary.dylib检查这个库中的符号-结果是:libancillary.dylib(singlemodule):U___sFU__keymgr_get_and_lock_processwide_ptrU__keymgr_get_and_lock_processwide_ptr_2U__keymgr_set_and_unlock_processwide_ptrU_abort00002cfeT_ancil_recv_fd00002c87T_anci

c++ - 如何将此 OpenGL 生成文件从 Linux 转换到 Mac OS X?

我正试图在我的MacBook上编译一个OpenGL程序,但不知道如何转换这个makefile。CFLAGS=-I/usr/X11R6/include-I/usr/local/includeLDFLAGS=-L/usr/X11R6/lib-L/usr/local/lib-lGL-lGLU-lm-lglutBINARIES=q2all:$(BINARIES)clean:-rm*.o$(BINARIES)q2:q2.og++$(LDFLAGS)$^-oq2q2.o:q2.cppg++-c$(CFLAGS)q2.cppdepend:makedepend*.cpp 最

c++ - 这是 Mac OS X 10.6 C++ 标准 API 中的错误吗?

以下代码无法在MacOSX10.6上编译;它在STL_algobase.h中给出一个错误,遵循“实例化自[...]”消息列表。#includeintmain(void){std::vector*v=newstd::vector(1,NULL);return0;}为了使其编译,我必须在NULL周围进行显式转换,即将其替换为(int*)(NULL)。不过,这看起来有点尴尬,我怀疑是否真的有必要;它还使我的源代码看起来很奇怪,因为结构和更长的类型名称嵌套在命名空间等中。编辑(错误信息):/Developer/SDKs/MacOSX10.6.sdk/usr/include/c++/4.2.1/

在 Mac 上使用 gcc 4.6.1 的 C++11

我是mac的新手,正在尝试让gcc4.6工作。我安装了MacPorts并安装了gcc4.6.1(通过执行sudoportinstallgcc46)。我正在尝试编译一个简单的测试代码,该代码可以在Linux(使用gcc4.6.1和4.6.2)和Windows上正常编译,但我遇到的错误让我觉得安装的库有问题。#include#include#includestructtest{voidget(){}};/*templatetestasync(constFunc&f){f();returntest();}*/usingnamespacestd;intmain(intargc,constcha

c++ - 强制 Clang 链接到 C++ 运行时

我有一个包含C和C++源代码混合的项目。它目前在OSX上使用GCC构建。该项目有定制的构建脚本,调用gcc命令来编译C和C++源代码,并单独调用链接器。我现在正尝试使用Clang构建它。调用clang会正确编译源文件;它区分.c和.cpp源文件,并针对每种情况编译适当的语言。不过,我在链接时遇到了问题。当链接器作为clang调用时,C++运行时库未链接进来,导致由于缺少符号而导致构建错误。当我将clang++设置为构建工具时,我可以成功链接,但这会导致编译时错误和警告;它真的不喜欢用C++编译器编译C源代码。clang:warning:treating'c'inputas'c++'wh

macOS跨进程通信: TCP Socket 创建实例

macOS跨进程通信:TCPSocket创建实例一:简介Socket是网络传输的抽象概念。一般我们常用的有TcpSocket和UDPScoket,和类Unix系统(包括Mac)独有的UnixDomainSocket(UDS)。TcpSocket能够跨电脑进行通信,即使是在同一个电脑下的多进程间通信,也会通过网卡进行数据传输,如果本地网卡的环回网络被禁用,则会导致通信失败。UnixDomainSocket,使用的是Liunx系统中万物皆文件的概念,和有名管道的操作差不多,都是在文本创建一个特有的文件,用来在两个进程间通信,两个经常分别写入和读取文件流中的数据,达到传输的目的。和TcpSocket