by shigemk2

当面は技術的なことしか書かない

今日のシェル芸の続き

shigemk2.hatenablog.com

こんなことをツイートしてたら

いろいろとツイートをいただきましたので、まとめます。

告白すると、C++はWindowsでしか転がしたことなかったから、C++ことはじめ on Linux

www.garunimo.com

//hello.cpp
#include <iostream>
using namespace std;

int main()
{
    cout << "hello" << endl;
}

ソースコードはともかく、コンパイルするにはどうしたらよいかというと、

$ g++ hello.cpp

でよかったんや。g++や。

`sqrt' に対する定義されていない参照です

goldenstate.cocolog-nifty.com

#include <stdio.h>
#include <math.h>

int Function (int n) {
    if(n <= 2) {
        return 1;
    } else {
        printf("f: %f\n", floor(sqrt(n)) + 1);
        return (Function (floor(sqrt(n))) + 1);
    }
}

main(void) {
    Function(30000);
}
$ gcc 1-43.c -o 1-43.out

こんな感じで普通にコンパイルしても、表題のようなエラーが出るので、正しくは

$ gcc -lm 1-43.c -o 1-43.out

とのこと。

lmは算術演算用ライブラリをリンクするオプションだそうだ。

gcc