2018-07-01から1ヶ月間の記事一覧
(7/29更新) 背景 msys2上のC++コンパイラでwindowsバイナリを作り、エクスプローラから実行すると以下のように実行できないことがある。 これはエクスプローラの環境変数(PATH)に/mingw64/binが通っていないため起こるが、PATHを通さずとも実行できるように…
extern int x; // 宣言 int x; // 宣言と定義(未初期化 class C { static int x // 宣言 }; 複数のソースファイルで int x; のように定義すると、リンクは通るが言語の仕様としては正しくない。(コンパイラがよしなにやってくれているだけ) 参照 Definitions…
ヘッダファイルに定義も書くと、ライブラリを公開する時ユーザーにコンパイルさせることになってしまう。よってヘッダには宣言だけ書いて定義はソースでするべき。(宣言さえあれば名前解決できるから) ただし関数テンプレートを使う場合は、実装もヘッダファ…
コンパイルオプション オプション 意味 -I ヘッダファイルの検索ディレクトリを追加 -L リンカの検索ディレクトリを追加 -l リンカでライブラリファイルをリンクする gcc -L./ -lhoge ./フォルダをライブラリ検索パスに追加し、hogeライブラリをリンクする M…