Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/142.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 未定义的引用问题,最小为;“外部”;使用测试用例_C++_Linker_Extern - Fatal编程技术网

C++ 未定义的引用问题,最小为;“外部”;使用测试用例

C++ 未定义的引用问题,最小为;“外部”;使用测试用例,c++,linker,extern,C++,Linker,Extern,我的测试用例有两个文件: a、 抄送: 在a.o.中,我有以下符号: 0000000000000018 b _ZL12program_name 在b.o.中: U program_name 问题是:我为什么在这里开枪打自己的脚 注:g++4.9.1很好。这都是由于const关键字造成的 它已在stackoverflow上: 让我引述: 这是因为const默认意味着内部链接,所以您的“定义”在出现的翻译单元之外是不可见的 谢谢我已经解决了这个问题,在定义中加入了“extern

我的测试用例有两个文件:

a、 抄送:

在a.o.中,我有以下符号:

0000000000000018 b _ZL12program_name
在b.o.中:

         U program_name
问题是:我为什么在这里开枪打自己的脚


注:g++4.9.1很好。这都是由于
const
关键字造成的

它已在stackoverflow上:

让我引述:

这是因为const默认意味着内部链接,所以您的“定义”在出现的翻译单元之外是不可见的


谢谢我已经解决了这个问题,在定义中加入了“extern”。
$ g++ -c a.cc -o a.o -std=c++11 -O2
$ g++ -c b.cc -o b.o -std=c++11 -O2
$ g++ a.o b.o -o case
b.o: In function `main':
b.cc:(.text.startup+0x7): undefined reference to `program_name'
collect2: error: ld returned 1 exit status
0000000000000018 b _ZL12program_name
         U program_name