所以我是一个新的程序员,我只是在我的Macbook上安装了XCode来获取GCC。 我认为Xcode是在OSX上获得GCC的唯一方法。 现在,当我运行我的Hello World应用程序时,在C ++中,g ++出现了,它是版本4.0.1,但是当我查找以g开头的命令时,我还会看到g ++ – 4.2。 有什么办法使4.2默认,而不是4.0.1,也有办法更新到最新版本4.4.0的gcc? 编辑:好吧,所以我安装了macports并安装了gcc4.4,它显示在terminal上作为gcc-mp-4.4,我怎么让它默认与gcc_select,就像什么是命令和东西。 谢谢。
有人可以告诉我如何创build一个.cpp和一个.hpp文件的静态库吗? 我是否需要创build.o和.a? 我也想知道如何编译一个静态库,并在其他.cpp代码中使用它。 我有header.cpp , header.hpp . 我想创buildheader.a 。 在test.cpptestingheader.a。 我正在使用g ++进行编译。
我试图在Linux中做一些事情,但它抱怨说找不到iostream.h。 我需要安装什么来获得这个文件?
我创build了一个包含内容的文本文件。 它位于与cpp文件相同的文件夹中。 我已经多次确认文件存在。 当我运行g ++时,编译并运行它find文件。 当我在Xcode中运行它时,它不起作用。 如果找不到该文件。 #include <iostream> #include <fstream> #include <string> using namespace std; int main () { string line; ifstream myfile ("example.txt"); if (myfile.is_open()) { while ( myfile.good() ) { getline (myfile,line); cout << line << endl; } myfile.close(); } else cout << "Unable to open file"; return 0; }
我有一个函数声明如下: template <typename T> T read(); 并定义如下: template <typename T> T packetreader::read() { offset += sizeof(T); return *(T*)(buf+offset-sizeof(T)); } 但是,当我尝试在我的main()函数中使用它时: packetreader reader; reader.read<int>(); 我从g ++得到以下错误: g++ -o main main.o packet.o main.o: In function `main': main.cpp:(.text+0xcc): undefined reference to `int packetreader::read<int>()' collect2: ld returned 1 exit status make: *** [main] Error 1 任何人都可以指出我正确的方向?
我试图在一个makefile中做到这一点,它可怕地失败: M_ARCH := $(shell g++ -dumpmachine | awk '{split($1,a,"-");print a[1]}') 你知道为什么吗? 我猜这跟逃跑有关,但是在什么地方呢?
下面的代码可以在Visual Studio 2008中使用和不使用优化。 但它只适用于没有优化的g ++(O0)。 #include <cstdlib> #include <iostream> #include <cmath> double round(double v, double digit) { double pow = std::pow(10.0, digit); double t = v * pow; //std::cout << "t:" << t << std::endl; double r = std::floor(t + 0.5); //std::cout << "r:" << r << std::endl; return r / pow; } int main(int […]
这个笔记说: -ansi :告诉编译器实现ANSI语言选项。 这closures了与ANSI标准不兼容的GCC的某些“特征”。 -pedantic :与-ansi一起使用,这告诉编译器严格遵守ANSI标准,拒绝任何不合规的代码。 首先要做的事情 GCC / G ++编译器的-pedantic和-ansi选项的目的是什么(我无法理解上面的描述)? 任何人都可以告诉我使用这两个选项的正确的情况吗? 我应该什么时候使用它们? 他们重要吗?
开发环境:GNU GCC(g ++)4.1.2 当我试图调查如何在unit testing中增加“代码覆盖率 – 特别是函数覆盖率”时,我发现一些类似于生成多次的代码。 请问你们有些人有什么想法吗? 我试过,并通过使用下面的代码观察了我上面提到的。 在“test.h” class BaseClass { public: ~BaseClass(); void someMethod(); }; class DerivedClass : public BaseClass { public: virtual ~DerivedClass(); virtual void someMethod(); }; 在“test.cpp” #include <iostream> #include "test.h" BaseClass::~BaseClass() { std::cout << "BaseClass dtor invoked" << std::endl; } void BaseClass::someMethod() { std::cout << "Base class method" << […]
我正在尝试编译一个像这样的C ++程序: $ g++ -o Sniffer_Train main.cpp Sniffer_train.cpp Sniffer_train.h -lmysqlclient -lpcap 但是,我得到以下错误: /usr/bin/ld: /tmp/cct6xeXD.o: undefined reference to symbol 'pthread_join@@GLIBC_2.4' //lib/arm-linux-gnueabihf/libpthread.so.0: error adding symbols: DSO missing from command line collect2: error: ld returned 1 exit status 我不知道这个错误是什么意思。 任何帮助将不胜感激。