client.c:439:3: error: use of undeclared identifier 'my_bool'

Python016

client.c:439:3: error: use of undeclared identifier 'my_bool',第1张

解决方式:

把mysql的gem版本换成0.5.2

再bundle

bundle完之後再改回原本的版本就不影响团队开发。

原则就是可以顺利跑完bundle就好,暂时更改版号骗过bundle

Gemfile

gem "mysql2", "~>0.5.2"

发生问题:

$ sudo gem install mysql2 -v 0.3.21

Building native extensions. This could take a while...

ERROR:  Error installing mysql2:

ERROR: Failed to build gem native extension.

    current directory: /Users/huyy01/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/mysql2-0.3.21/ext/mysql2

/Users/huyy01/.rbenv/versions/2.5.1/bin/ruby -r ./siteconf20180724-29825-pksvq0.rb extconf.rb

checking for ruby/thread.h... yes

checking for rb_thread_call_without_gvl() in ruby/thread.h... yes

checking for rb_thread_blocking_region()... no

checking for rb_wait_for_single_fd()... yes

checking for rb_hash_dup()... yes

checking for rb_intern3()... yes

-----

Using mysql_config at /usr/local/bin/mysql_config

-----

checking for mysql.h... yes

checking for errmsg.h... yes

checking for mysqld_error.h... yes

-----

Setting rpath to /usr/local/Cellar/mysql/8.0.11/lib

-----

creating Makefile

current directory: /Users/huyy01/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/mysql2-0.3.21/ext/mysql2

make "DESTDIR=" clean

current directory: /Users/huyy01/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/mysql2-0.3.21/ext/mysql2

make "DESTDIR="

compiling client.c

client.c:439:3: error: use of undeclared identifier 'my_bool'

  my_bool res = mysql_read_query_result(client)

  ^

client.c:441:19: error: use of undeclared identifier 'res'

  return (void *)(res == 0 ? Qtrue : Qfalse)

                  ^

client.c:762:3: error: use of undeclared identifier 'my_bool'

  my_bool boolval

  ^

client.c:793:7: error: use of undeclared identifier 'boolval'

      boolval = (value == Qfalse ? 0 : 1)

      ^

client.c:794:17: error: use of undeclared identifier 'boolval'

      retval = &boolval

                ^

client.c:797:10: error: use of undeclared identifier 'MYSQL_SECURE_AUTH'did you mean 'MYSQL_DEFAULT_AUTH'?

    case MYSQL_SECURE_AUTH:

         ^~~~~~~~~~~~~~~~~

         MYSQL_DEFAULT_AUTH

/usr/local/Cellar/mysql/8.0.11/include/mysql/mysql.h:188:3: note: 'MYSQL_DEFAULT_AUTH' declared here

  MYSQL_DEFAULT_AUTH,

  ^

client.c:798:7: error: use of undeclared identifier 'boolval'

      boolval = (value == Qfalse ? 0 : 1)

      ^

client.c:799:17: error: use of undeclared identifier 'boolval'

      retval = &boolval

                ^

client.c:830:38: error: use of undeclared identifier 'boolval'

        wrapper->reconnect_enabled = boolval

                                     ^

client.c:1185:38: error: use of undeclared identifier 'MYSQL_SECURE_AUTH'did you mean 'MYSQL_DEFAULT_AUTH'?

  return _mysql_client_options(self, MYSQL_SECURE_AUTH, value)

                                     ^~~~~~~~~~~~~~~~~

                                     MYSQL_DEFAULT_AUTH

/usr/local/Cellar/mysql/8.0.11/include/mysql/mysql.h:188:3: note: 'MYSQL_DEFAULT_AUTH' declared here

  MYSQL_DEFAULT_AUTH,

  ^

10 errors generated.

make: *** [client.o] Error 1

make failed, exit code 2

Gem files will remain installed in /Users/huyy01/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/mysql2-0.3.21 for inspection.

Results logged to /Users/huyy01/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/extensions/x86_64-darwin-17/2.5.0-static/mysql2-0.3.21/gem_make.out

sh-huyy01:redmine huyy01$ cd /Users/huyy01/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/

最常用的就是划刻。或者买一些测试工具进行测试。比如硬度测试笔。

硬座,是指用外力进行分割物质时的难易程度。

宝石和玉石都有较高或很高的颀度。所以硬度是宝石和玉石极为重要的属性。

硬度与物质分子结构中质点间的结合力有关。金刚石和石墨的化学成份都是碳元素,只是分子内部的质点排列方式不同,从而形成了地球最便和最软的物质。

(1)硬度的表示

玉石和宝石多采用摩氏硬度计来表示物质的硬度。摩氏(Morhe,德国矿物学家)硬度计是选定10种矿物原石,用它们代表10个级别的硬度。如果某种矿物原石在相邻的两级矿石上,分别能划出和不能划出刻痕就表明该种矿物原石的硬度介于两级矿石硬度之间。

下面是这10种矿物的硬度:

滑石1度、石膏2度、方解石3度、萤石4度、磷灰石5度、正长石6度、石英7度、黄玉8度、刚玉9度、金刚石10度。

在日常生活中,可以用下列物的划痕来大致把握硬度

能在纸上划痕者,相当于摩氏1度。

与指甲相同者为摩氏2.5度。

与钢铁相同者为摩氏5.5—6度。

与玻璃相同者为摩氏7度。

值得说明的是,摩氏硬度级差并不是算术级差,也就是说,摩氏硬度是10的金刚石并不是比摩氏硬度是7的石英才硬3倍。如果我们采用研磨速度来表示硬度的话,那么金刚石的硬度要比石英大1000倍。也就是说,在同样的研磨条件下,磨损1毫克的金刚石耍比磨损1毫克的石英多耗费1000倍的时间。

(2)打击硬度和研磨硬座

打击硬度。打击硬度是描述物质是韧,还是脆的术语。金刚石的摩氏硬度是10,打击硬度却很低,经不起重部的一击。新四软玉的摩氏硬度是5.5—6,但其打击硬度却很高,可以经受起大锤猛击,最多在其表面上留下几个不大的凹点。

打击硬度与玉石和宝石的分子排列有关。在显微镜下观察,软玉是由无数极细微的纤维复杂地交织在一起。它本身就是一块石头的毡毯。要压碎软玉,必须在每平方厘米上施加7吨的压力才行,而压碎钢铁只要施4—5吨压力。

研磨硬度。研磨硬度是以研磨速度之比来表示的,也可以用韧性比来表示。世界上最韧的矿物是黑金刚石。如果以黑金刚石为10度,则软玉为9度。翡翠、红宝石、蓝宝石为8度金刚石、水晶、海蓝宝石为7—7.5度,搬揽石为6度,祖母绿为5.57度,黄晶宝石、月光石为5度,猫眼石为3度,萤石为2度。

(3)硬度的用途

硬度是宝石、玉石的重要的物理性质,它与宝石和玉石的质地、光泽和加工方法有关。所以检验硬度是鉴定宝石、玉石时的一项重要内容。

行业中习惯祀宝石玉石硬度分为三个级别:高硬度的属于宝石级,一股在摩氏7度以上,如钻石宝石、红宝石、蓝宝石、碧玺等。以欧珀宝石硬度最低,为55度;中硬度的属于高硬度玉石,一般在摩氏7—6度之间,如玉、翡翠、玛瑙、水晶、木变石、东陵石、河南玉等;低硬度的属于用刀划得动的玉石如青金石、松石、珊瑚、孔雀石、岫玉、萤石等,图氏硬度在5—4度之间。琥珀最低,是2.5度。在矿物中,玉石很少有低于4度的。

(4)其他玉石及石制品的硬度(不断增加)

一、钻石(Diamond):硬度10,是自然界最硬的物质。光泽绝伦、纯净无色的质地最受青睬。象征『高贵』、『永恒』的宝石。

二、红宝(Ruby):硬度9,有各种不同的红色,鸡血红最受青睬,硬度仅次于钻石。代表热情与生生不息的生命力。

三、蓝宝(Sapphire):硬度8,与红宝石同为刚玉矿群,鲜蓝色不偏黑暗且清澈剔透的为上品,据说可以激发一个人的创造能力。

四、拓帕石(Blue Topaz):硬度8,有淡蓝及深蓝色。淡蓝的拓帕石,常被误认为是海蓝宝石。因为硬度颇高,切割成宝石面时,光泽亮度效果非常好。具有提升领导能力的宝石。

五、祖母绿(Emerald):硬度7.5,干净无瑕的祖母绿是很少见的,大都有内含物。属于绿柱石矿群。绿色的宝石可助事业发展,凝聚财富。

六、海蓝宝石(Aquamarine):硬度7.5,与祖母绿同是绿柱石矿群。淡雅的海绿色是最受欢迎的。代表愉悦、和平与幸福的宝石。

七、红碧玺(Rubellite):硬度7.5,为电气石族群中最贵的宝石,因为上等的红色可媲美红宝,故又称为『红宝碧玺』。能够吸引爱情与友情的宝石。

八、绿碧玺(Green Tourmaline):硬度7.5,是所有电气变种中产量最丰富的,人们常把它与祖母绿相混。可发展事业创造财富的宝石。

九、贵石榴石(Garnet):硬度7.5,以鲜红或紫红为上乘货,但产量稀少偏暗或黑的居多,选购时应注意光泽度。据说可以改变女人的内分泌。

十、红柱石(Andalusite):硬度7.5,及稀有的宝石,有强烈独特的多向色性,同一种宝石会呈现黄、绿、红三种色。

十一、金绿柱石(Heliodor):硬度7.5,与祖母绿同为绿柱石矿群,闪闪发光的金黄色,被喻为『太阳』,黄色的宝石据说可以凝聚宇宙间财富的能量。

十二、紫水晶(Amethyst):硬度7,漂亮的色泽至今仍没有其它的宝石可以替代。自古即受世人的喜爱。据说可开发智慧,并促进人脉。

十三、黄水晶(Citrine):硬度7,宝石级的黄水晶极为稀有,以橘黄色为上品。黄色的宝石据说可凝聚财富,改善肠胃功能。

十四、董青石(Iolite):硬度7,紫蓝色的色调有如丹泉石极受人喜欢,深蓝色的宝石又有如蓝宝。具有『领导统御』的宝石。

十五、贵橄榄石(Peridot):硬度6.5,由于铁的存在而成橄榄绿,并有独特油脂光泽。据说是『财富』宝石,可以凝聚财富的能量。

十六、丹泉石(Tanzanite):是属于黝帘石的一种,成紫蓝色,上等的丹泉石价值直逼蓝宝石,可以稳定情绪,加强思绪、锐度的宝石。

十七、月光石(Moon stone):硬度6.5,其中以蓝色月光石为极品,冷冷的蓝光有优雅的感觉。据说可用来吸引爱情的宝石。

十八、蛋白石(Opal):硬度6,内部火彩越多越明显的越贵,澳洲产量最丰富。据说可激发灵感,提升创造力。

十九、火蛋白石(Fire Opal):硬度6,呈橘色或橘红色,富丽的火红色在有色宝石中独具一格。据说可招来财富。

二十、青金石(Lapis):硬度5.5,是阿富汗的国宝石,因为深蓝色的矿石中含有黄铁矿,故名为『青金』,传说可治喉病,改善呼吸系统的功能。

玻璃硬度 5.5。

360浏览器,用的是IE内核,出现这个错误提示,一般都是因为ActiveX控件的问题。

360浏览器---工具---Internet选项,在弹出框体,选择高级,先还原下高级设置,然后找到图上的两个选项,勾选删,应用就行了。

如果依然不行,360浏览器---工具---选项----高级设置---内核设置,如图:

在内核设置中,先输入你要访问网页的域名,然后把内核设置为IE或者IE9