読者です 読者をやめる 読者になる 読者になる

とくにあぶなくないRiSKのブログ

危ないRiSKのブログだったかもしれない。本当はRiSKだけどググラビリティとか取得できるIDの都合でsscriskも使ったり。

リンカでこけるコード

C++

Cygwin/MinGW GCC 4.6.1, 4.7.0 20110924 (experimental) だと次のコードがリンカでこけます。どういうことなのでしょうか?

#include<iostream>

struct s
{
 static constexpr char value[] = "test";
};

int main()
{
 std::cout << s::value << std::endl;
}

実行結果

C:\Documents and Settings\RiSK\cc46mODT.o:a.cpp:(.text+0x1a): undefined reference to `s::value'
collect2.exe: error: ld returned 1 exit status

コードのどこに問題あるのでしょうか?それとも環境の問題?原因不明です。
追記:
コメントで教えてもらいました。コメント欄も見てね。