http://job.youkuaiyun.com/n/20051208/30627.html

李开复表示Google招聘看重人才的知识储备和情商。知识储备要从练内功、多实战、求实干、不放弃数学四方面着手,尤其要学好数据结构等基础课程。情商方面,公司注重培养新人待人处事方法,坚决不录用不诚信者,面试看重创意、灵气、积极和勇气。
据他所知,中国学生中有不少通过互联网学习麻省理工学院在网上的开放课程,还有的学生通过网络做一些项目。还因为有了网络世界,有的学生直接参与到一些国际编程的比赛中,在不少出了名的高难度比赛中都陆续有了中国学生的身影,而且还能取得不错的成绩。

  在高校演讲时被问得最多的问题之一就是“Google公司看重有怎样知识储备的人”。李开复干脆和他的同事准备了一个“范本”,告诉学生至少要从四个方面储备自己:

  首先,练内功。不要只花功夫学习流行的编程语言和工具,以及一些公司招聘广告上要求的科目,要把数据结构、算法、数据库、操作系统原理、计算机体系结构、计算机网络、离散数学等基础课程学好。

  其次,要多实战。建议大家争取在大学四年中积累编写10万行代码的经验。

  第三,求实干。不要轻视任何的实际工作,要不懈追求对细节一丝不苟的实干作风与职业精神。

  第四,不放弃数学。数学是思维的体操,数学无处不在。尤其当你对一些“数学密集型”的领域有兴趣,例如视频、图像处理等等,你需要使它成为你的利器。

  在基础知识方面,中国学生或许有一些正在靠近Google这样跨国公司的招聘标准,那么在李开复一直倡导的情商方面,中国学生又有什么变化,或者说Google公司的情商标准又是怎样的呢?

  李开复说,大部分中国学生比较含蓄,而情商的开发将是公司对新人着力开发和培养的内容。

  他认为新人刚进公司首先要培养“待人处事”的方法,因此他设计了一个“虚拟公司”的培训方法,用三四个小时模拟一个产品的研发周期,然后让新手们学习,怎样在适当的时候讲适当的话,怎么能用最好的方法说服别人,怎样能得到别人的信任,怎么样以诚待人,怎样能有团队精神。

  “对于不诚信的人我们坚决不考虑”,在李开复写给中国学生的第一封信里他就谈到,作为一家跨国公司最不能容忍的就是那些不诚信的行为,Google的招聘中这也是非常重要的标准。

  李开复讲了这样一个故事,Google有一些面试内容是通过电话完成的,有一名学生在电话测试时表现得很优秀,可是几天后,公司却发现这个学生在网上写了一篇文章说,他当时是一边回答问题,一边在互联网上搜索答案,这位学生似乎还很为自己的行为得意,作为经验向别人传授。

  这篇文章被李开复和他的同事看到以后,这位学生立即丧失了他为Google公司工作的一切可能。

  李开复透露,招聘计划没有上限,面试中最看重的是“创意、灵气、积极和勇气”。

See <http://jenkins1.ep.tp-link.com/job/FEP_SOURCE_20240927/1278/display/redirect> Changes: ------------------------------------------ [...truncated 6.47 MB...] "../lib" This warning is for project developers. Use -Wno-dev to suppress it. -- Generating done CMake Warning: Manually-specified variables were not used by the project: BUILD_DOC BUILD_DOCS BUILD_EXAMPLE BUILD_EXAMPLES BUILD_TEST BUILD_TESTING BUILD_TESTS -- Build files have been written to: <http://jenkins1.ep.tp-link.com/job/FEP_SOURCE_20240927/ws/buildroot/build/armv8_7.5.0_musl/build/tplink/midware-1.0> >>> midware 1.0 Building PATH="<http://jenkins1.ep.tp-link.com/job/FEP_SOURCE_20240927/ws/buildroot/build/armv8_7.5.0_musl/host/bin>:<http://jenkins1.ep.tp-link.com/job/FEP_SOURCE_20240927/ws/buildroot/build/armv8_7.5.0_musl/host/sbin>:/usr/local/bin:/usr/bin" /usr/local/bin/make -j4 -C <http://jenkins1.ep.tp-link.com/job/FEP_SOURCE_20240927/ws/buildroot/build/armv8_7.5.0_musl/build/tplink/midware-1.0/> Scanning dependencies of target tpRpcCo Scanning dependencies of target tpRpc Scanning dependencies of target tpNotifyCo [ 2%] Building C object CMakeFiles/tpRpcCo.dir/tpRpc/tpRpcCo.c.o Scanning dependencies of target fepPacket [ 4%] Building C object CMakeFiles/tpRpc.dir/tpRpc/tpRpc.c.o [ 6%] Building C object CMakeFiles/tpNotifyCo.dir/tpNotify/tpNotifyCo.c.o [ 8%] Building C object CMakeFiles/fepPacket.dir/fepPacket/fepPacket.c.o [ 10%] Linking C shared library <http://jenkins1.ep.tp-link.com/job/FEP_SOURCE_20240927/ws/buildroot/build/armv8_7.5.0_musl/build/tplink/lib/libtpRpcCo.so> [ 13%] Linking C shared library <http://jenkins1.ep.tp-link.com/job/FEP_SOURCE_20240927/ws/buildroot/build/armv8_7.5.0_musl/build/tplink/lib/libtpRpc.so> [ 15%] Building C object CMakeFiles/tpNotifyCo.dir/tpNotify/tpNotifyField.c.o [ 17%] Building C object CMakeFiles/fepPacket.dir/fepPacket/dmpPacket.c.o [ 19%] Linking C shared library <http://jenkins1.ep.tp-link.com/job/FEP_SOURCE_20240927/ws/buildroot/build/armv8_7.5.0_musl/build/tplink/lib/libtpNotifyCo.so> [ 21%] Linking C shared library <http://jenkins1.ep.tp-link.com/job/FEP_SOURCE_20240927/ws/buildroot/build/armv8_7.5.0_musl/build/tplink/lib/libfepPacket.so> [ 21%] Built target tpRpcCo [ 21%] Built target tpRpc [ 21%] Built target tpNotifyCo Scanning dependencies of target tpConfig Scanning dependencies of target fepPacketCo [ 23%] Building C object CMakeFiles/tpConfig.dir/tpConfig/tpConfig.c.o [ 26%] Building C object CMakeFiles/fepPacketCo.dir/fepPacket/fepPacketCo.c.o [ 26%] Built target fepPacket Scanning dependencies of target tpConfigCo [ 28%] Building C object CMakeFiles/fepPacketCo.dir/fepPacket/dmpPacketCo.c.o [ 30%] Building C object CMakeFiles/tpConfigCo.dir/tpConfig/tpConfigCo.c.o [ 32%] Building C object CMakeFiles/tpConfig.dir/tpConfig/tpConfigField.c.o [ 34%] Building C object CMakeFiles/tpConfigCo.dir/tpConfig/tpConfigField.c.o [ 36%] Linking C shared library <http://jenkins1.ep.tp-link.com/job/FEP_SOURCE_20240927/ws/buildroot/build/armv8_7.5.0_musl/build/tplink/lib/libfepPacketCo.so> [ 39%] Building C object CMakeFiles/tpConfigCo.dir/tpConfig/tpConfigCoOld.c.o [ 41%] Building C object CMakeFiles/tpConfig.dir/tpConfig/tpConfigOld.c.o [ 43%] Linking C shared library <http://jenkins1.ep.tp-link.com/job/FEP_SOURCE_20240927/ws/buildroot/build/armv8_7.5.0_musl/build/tplink/lib/libtpConfigCo.so> Scanning dependencies of target tpDal [ 45%] Linking C shared library <http://jenkins1.ep.tp-link.com/job/FEP_SOURCE_20240927/ws/buildroot/build/armv8_7.5.0_musl/build/tplink/lib/libtpConfig.so> [ 47%] Building C object CMakeFiles/tpDal.dir/tpDal/dalAdo.c.o [ 47%] Built target fepPacketCo [ 50%] Building C object CMakeFiles/tpDal.dir/tpDal/dal.c.o [ 50%] Built target tpConfigCo Scanning dependencies of target tpNotify [ 50%] Built target tpConfig [ 52%] Building C object CMakeFiles/tpDal.dir/tpDal/dalLib.c.o [ 54%] Building C object CMakeFiles/tpNotify.dir/tpNotify/tpNotify.c.o [ 56%] Linking C shared library <http://jenkins1.ep.tp-link.com/job/FEP_SOURCE_20240927/ws/buildroot/build/armv8_7.5.0_musl/build/tplink/lib/libtpDal.so> Scanning dependencies of target tpData Scanning dependencies of target fepDal [ 58%] Building C object CMakeFiles/tpNotify.dir/tpNotify/tpNotifyField.c.o [ 60%] Building C object CMakeFiles/tpData.dir/tpData/tpData.c.o [ 63%] Building C object CMakeFiles/fepDal.dir/tpDal/dalAdo.c.o [ 65%] Linking C shared library <http://jenkins1.ep.tp-link.com/job/FEP_SOURCE_20240927/ws/buildroot/build/armv8_7.5.0_musl/build/tplink/lib/libtpNotify.so> [ 67%] Building C object CMakeFiles/fepDal.dir/tpDal/dalco.c.o [ 69%] Building C object CMakeFiles/tpData.dir/tpData/tpDataObj.c.o [ 69%] Built target tpDal [ 71%] Building C object CMakeFiles/tpData.dir/tpData/tpDataField.c.o [ 73%] Building C object CMakeFiles/fepDal.dir/tpDal/dalLib.c.o [ 76%] Linking C shared library <http://jenkins1.ep.tp-link.com/job/FEP_SOURCE_20240927/ws/buildroot/build/armv8_7.5.0_musl/build/tplink/lib/libtpData.so> Scanning dependencies of target tpDataCo [ 78%] Linking C shared library <http://jenkins1.ep.tp-link.com/job/FEP_SOURCE_20240927/ws/buildroot/build/armv8_7.5.0_musl/build/tplink/lib/libfepDal.so> [ 78%] Built target tpNotify [ 80%] Building C object CMakeFiles/tpDataCo.dir/tpData/tpDataCo.c.o Scanning dependencies of target tpState [ 80%] Built target tpData [ 82%] Building C object CMakeFiles/tpDataCo.dir/tpData/tpDataObj.c.o [ 86%] Building C object CMakeFiles/tpState.dir/tpState/tpState.c.o [ 86%] Building C object CMakeFiles/tpDataCo.dir/tpData/tpDataField.c.o [ 86%] Built target fepDal [ 89%] Building C object CMakeFiles/tpState.dir/tpState/tpStateField.c.o [ 91%] Linking C shared library <http://jenkins1.ep.tp-link.com/job/FEP_SOURCE_20240927/ws/buildroot/build/armv8_7.5.0_musl/build/tplink/lib/libtpDataCo.so> Scanning dependencies of target tpStateCo [ 93%] Linking C shared library <http://jenkins1.ep.tp-link.com/job/FEP_SOURCE_20240927/ws/buildroot/build/armv8_7.5.0_musl/build/tplink/lib/libtpState.so> [ 95%] Building C object CMakeFiles/tpStateCo.dir/tpState/tpStateCo.c.o [ 97%] Building C object CMakeFiles/tpStateCo.dir/tpState/tpStateField.c.o [ 97%] Built target tpDataCo [100%] Linking C shared library <http://jenkins1.ep.tp-link.com/job/FEP_SOURCE_20240927/ws/buildroot/build/armv8_7.5.0_musl/build/tplink/lib/libtpStateCo.so> [100%] Built target tpState [100%] Built target tpStateCo >>> midware 1.0 Installing to target PATH="<http://jenkins1.ep.tp-link.com/job/FEP_SOURCE_20240927/ws/buildroot/build/armv8_7.5.0_musl/host/bin>:<http://jenkins1.ep.tp-link.com/job/FEP_SOURCE_20240927/ws/buildroot/build/armv8_7.5.0_musl/host/sbin>:/usr/local/bin:/usr/bin" /usr/local/bin/make -j4 DESTDIR=<http://jenkins1.ep.tp-link.com/job/FEP_SOURCE_20240927/ws/buildroot/build/armv8_7.5.0_musl/target> install/fast -C <http://jenkins1.ep.tp-link.com/job/FEP_SOURCE_20240927/ws/buildroot/build/armv8_7.5.0_musl/build/tplink/midware-1.0/> Install the project... -- Install configuration: "Release" -- Installing: <http://jenkins1.ep.tp-link.com/job/FEP_SOURCE_20240927/ws/buildroot/build/armv8_7.5.0_musl/target/fep/misc/conf/fepPacketConfig.json> -- Installing: <http://jenkins1.ep.tp-link.com/job/FEP_SOURCE_20240927/ws/buildroot/build/armv8_7.5.0_musl/target/fep/lib/libfepPacket.so.1.0> -- Installing: <http://jenkins1.ep.tp-link.com/job/FEP_SOURCE_20240927/ws/buildroot/build/armv8_7.5.0_musl/target/fep/lib/libfepPacket.so.0> -- Set runtime path of "<http://jenkins1.ep.tp-link.com/job/FEP_SOURCE_20240927/ws/buildroot/build/armv8_7.5.0_musl/target/fep/lib/libfepPacket.so.1.0"> to "" -- Installing: <http://jenkins1.ep.tp-link.com/job/FEP_SOURCE_20240927/ws/buildroot/build/armv8_7.5.0_musl/target/fep/lib/libfepPacket.so> -- Installing: <http://jenkins1.ep.tp-link.com/job/FEP_SOURCE_20240927/ws/buildroot/build/armv8_7.5.0_musl/target/fep/lib/libfepPacketCo.so.1.0> -- Installing: <http://jenkins1.ep.tp-link.com/job/FEP_SOURCE_20240927/ws/buildroot/build/armv8_7.5.0_musl/target/fep/lib/libfepPacketCo.so.0> -- Set runtime path of "<http://jenkins1.ep.tp-link.com/job/FEP_SOURCE_20240927/ws/buildroot/build/armv8_7.5.0_musl/target/fep/lib/libfepPacketCo.so.1.0"> to "" -- Installing: <http://jenkins1.ep.tp-link.com/job/FEP_SOURCE_20240927/ws/buildroot/build/armv8_7.5.0_musl/target/fep/lib/libfepPacketCo.so> -- Installing: <http://jenkins1.ep.tp-link.com/job/FEP_SOURCE_20240927/ws/buildroot/build/armv8_7.5.0_musl/target/fep/lib/libtpConfig.so> -- Set runtime path of "<http://jenkins1.ep.tp-link.com/job/FEP_SOURCE_20240927/ws/buildroot/build/armv8_7.5.0_musl/target/fep/lib/libtpConfig.so"> to "" -- Installing: <http://jenkins1.ep.tp-link.com/job/FEP_SOURCE_20240927/ws/buildroot/build/armv8_7.5.0_musl/target/fep/lib/libtpConfigCo.so> -- Set runtime path of "<http://jenkins1.ep.tp-link.com/job/FEP_SOURCE_20240927/ws/buildroot/build/armv8_7.5.0_musl/target/fep/lib/libtpConfigCo.so"> to "" -- Installing: <http://jenkins1.ep.tp-link.com/job/FEP_SOURCE_20240927/ws/buildroot/build/armv8_7.5.0_musl/target/fep/misc/conf/tpconfigChannelCfg.json> -- Installing: <http://jenkins1.ep.tp-link.com/job/FEP_SOURCE_20240927/ws/buildroot/build/armv8_7.5.0_musl/target/fep/misc/conf/tpconfigCoChannelCfg.json> -- Installing: <http://jenkins1.ep.tp-link.com/job/FEP_SOURCE_20240927/ws/buildroot/build/armv8_7.5.0_musl/target/fep/misc/conf/tpConfigCfg.json> -- Installing: <http://jenkins1.ep.tp-link.com/job/FEP_SOURCE_20240927/ws/buildroot/build/armv8_7.5.0_musl/target/fep/misc/script/diff.py> -- Installing: <http://jenkins1.ep.tp-link.com/job/FEP_SOURCE_20240927/ws/buildroot/build/armv8_7.5.0_musl/target/fep/misc/script/dumpDbDataToJson.py> -- Installing: <http://jenkins1.ep.tp-link.com/job/FEP_SOURCE_20240927/ws/buildroot/build/armv8_7.5.0_musl/target/fep/misc/script/sed.tcl> -- Installing: <http://jenkins1.ep.tp-link.com/job/FEP_SOURCE_20240927/ws/buildroot/build/armv8_7.5.0_musl/target/fep/lib/libtpState.so> -- Set runtime path of "<http://jenkins1.ep.tp-link.com/job/FEP_SOURCE_20240927/ws/buildroot/build/armv8_7.5.0_musl/target/fep/lib/libtpState.so"> to "" -- Installing: <http://jenkins1.ep.tp-link.com/job/FEP_SOURCE_20240927/ws/buildroot/build/armv8_7.5.0_musl/target/fep/lib/libtpStateCo.so> -- Set runtime path of "<http://jenkins1.ep.tp-link.com/job/FEP_SOURCE_20240927/ws/buildroot/build/armv8_7.5.0_musl/target/fep/lib/libtpStateCo.so"> to "" -- Installing: <http://jenkins1.ep.tp-link.com/job/FEP_SOURCE_20240927/ws/buildroot/build/armv8_7.5.0_musl/target/fep/misc/conf/tpStateChannelCfg.json> -- Installing: <http://jenkins1.ep.tp-link.com/job/FEP_SOURCE_20240927/ws/buildroot/build/armv8_7.5.0_musl/target/fep/misc/conf/tpStateCoChannelCfg.json> -- Installing: <http://jenkins1.ep.tp-link.com/job/FEP_SOURCE_20240927/ws/buildroot/build/armv8_7.5.0_musl/target/fep/misc/conf/tpStateCfg.json> -- Installing: <http://jenkins1.ep.tp-link.com/job/FEP_SOURCE_20240927/ws/buildroot/build/armv8_7.5.0_musl/target/fep/misc/conf/dalChannelCfg.json> -- Installing: <http://jenkins1.ep.tp-link.com/job/FEP_SOURCE_20240927/ws/buildroot/build/armv8_7.5.0_musl/target/fep/misc/conf/dalConfig.json> -- Installing: <http://jenkins1.ep.tp-link.com/job/FEP_SOURCE_20240927/ws/buildroot/build/armv8_7.5.0_musl/target/fep/lib/libtpDal.so> -- Installing: <http://jenkins1.ep.tp-link.com/job/FEP_SOURCE_20240927/ws/buildroot/build/armv8_7.5.0_musl/target/fep/misc/conf/fepDalChannelCfg.json> -- Installing: <http://jenkins1.ep.tp-link.com/job/FEP_SOURCE_20240927/ws/buildroot/build/armv8_7.5.0_musl/target/fep/misc/conf/fepDalConfig.json> -- Installing: <http://jenkins1.ep.tp-link.com/job/FEP_SOURCE_20240927/ws/buildroot/build/armv8_7.5.0_musl/target/fep/lib/libfepDal.so> -- Installing: <http://jenkins1.ep.tp-link.com/job/FEP_SOURCE_20240927/ws/buildroot/build/armv8_7.5.0_musl/target/fep/misc/conf/tpDataChannelCfg.json> -- Installing: <http://jenkins1.ep.tp-link.com/job/FEP_SOURCE_20240927/ws/buildroot/build/armv8_7.5.0_musl/target/fep/misc/conf/tpDataCfg.json> -- Installing: <http://jenkins1.ep.tp-link.com/job/FEP_SOURCE_20240927/ws/buildroot/build/armv8_7.5.0_musl/target/fep/lib/libtpData.so> -- Installing: <http://jenkins1.ep.tp-link.com/job/FEP_SOURCE_20240927/ws/buildroot/build/armv8_7.5.0_musl/target/fep/misc/conf/tpDataVcCfg.json> -- Installing: <http://jenkins1.ep.tp-link.com/job/FEP_SOURCE_20240927/ws/buildroot/build/armv8_7.5.0_musl/target/fep/misc/conf/tpDataCoCfg.json> -- Installing: <http://jenkins1.ep.tp-link.com/job/FEP_SOURCE_20240927/ws/buildroot/build/armv8_7.5.0_musl/target/fep/lib/libtpDataCo.so> -- Installing: <http://jenkins1.ep.tp-link.com/job/FEP_SOURCE_20240927/ws/buildroot/build/armv8_7.5.0_musl/target/fep/lib/libtpRpc.so.1.0> -- Installing: <http://jenkins1.ep.tp-link.com/job/FEP_SOURCE_20240927/ws/buildroot/build/armv8_7.5.0_musl/target/fep/lib/libtpRpc.so.0> -- Installing: <http://jenkins1.ep.tp-link.com/job/FEP_SOURCE_20240927/ws/buildroot/build/armv8_7.5.0_musl/target/fep/lib/libtpRpc.so> -- Installing: <http://jenkins1.ep.tp-link.com/job/FEP_SOURCE_20240927/ws/buildroot/build/armv8_7.5.0_musl/target/fep/lib/libtpRpcCo.so.1.0> -- Installing: <http://jenkins1.ep.tp-link.com/job/FEP_SOURCE_20240927/ws/buildroot/build/armv8_7.5.0_musl/target/fep/lib/libtpRpcCo.so.0> -- Installing: <http://jenkins1.ep.tp-link.com/job/FEP_SOURCE_20240927/ws/buildroot/build/armv8_7.5.0_musl/target/fep/lib/libtpRpcCo.so> -- Installing: <http://jenkins1.ep.tp-link.com/job/FEP_SOURCE_20240927/ws/buildroot/build/armv8_7.5.0_musl/target/fep/misc/conf/tpRpcConfig.json> -- Installing: <http://jenkins1.ep.tp-link.com/job/FEP_SOURCE_20240927/ws/buildroot/build/armv8_7.5.0_musl/target/fep/misc/conf/tpRpcChannelCfg.json> -- Installing: <http://jenkins1.ep.tp-link.com/job/FEP_SOURCE_20240927/ws/buildroot/build/armv8_7.5.0_musl/target/fep/misc/conf/tpRpcCoChannelCfg.json> -- Installing: <http://jenkins1.ep.tp-link.com/job/FEP_SOURCE_20240927/ws/buildroot/build/armv8_7.5.0_musl/target/fep/lib/libtpNotify.so.1.0> -- Installing: <http://jenkins1.ep.tp-link.com/job/FEP_SOURCE_20240927/ws/buildroot/build/armv8_7.5.0_musl/target/fep/lib/libtpNotify.so.0> -- Installing: <http://jenkins1.ep.tp-link.com/job/FEP_SOURCE_20240927/ws/buildroot/build/armv8_7.5.0_musl/target/fep/lib/libtpNotify.so> -- Installing: <http://jenkins1.ep.tp-link.com/job/FEP_SOURCE_20240927/ws/buildroot/build/armv8_7.5.0_musl/target/fep/lib/libtpNotifyCo.so.1.0> -- Installing: <http://jenkins1.ep.tp-link.com/job/FEP_SOURCE_20240927/ws/buildroot/build/armv8_7.5.0_musl/target/fep/lib/libtpNotifyCo.so.0> -- Installing: <http://jenkins1.ep.tp-link.com/job/FEP_SOURCE_20240927/ws/buildroot/build/armv8_7.5.0_musl/target/fep/lib/libtpNotifyCo.so> -- Installing: <http://jenkins1.ep.tp-link.com/job/FEP_SOURCE_20240927/ws/buildroot/build/armv8_7.5.0_musl/target/fep/misc/conf/tpNotifyConfig.json> -- Installing: <http://jenkins1.ep.tp-link.com/job/FEP_SOURCE_20240927/ws/buildroot/build/armv8_7.5.0_musl/target/fep/misc/conf/tpNotifyChannelCfg.json> -- Installing: <http://jenkins1.ep.tp-link.com/job/FEP_SOURCE_20240927/ws/buildroot/build/armv8_7.5.0_musl/target/fep/misc/conf/tpNotifyCoChannelCfg.json> -- Up-to-date: <http://jenkins1.ep.tp-link.com/job/FEP_SOURCE_20240927/ws/buildroot/build/armv8_7.5.0_musl/target/fep/misc/conf/db_config.json> >>> libDcm 1.0 Syncing from source dir >>> <http://jenkins1.ep.tp-link.com/job/FEP_SOURCE_20240927/ws/buildroot >>> /../src/application/libDcm> rsync -au --chmod=u=rwX,go=rX --exclude .svn --exclude .git --exclude .hg --exclude .bzr --exclude CVS <http://jenkins1.ep.tp-link.com/job/FEP_SOURCE_20240927/ws/buildroot/../src/application/libDcm/> <http://jenkins1.ep.tp-link.com/job/FEP_SOURCE_20240927/ws/buildroot/build/armv8_7.5.0_musl/build/tplink/libDcm-1.0> >>> libDcm 1.0 Configuring (mkdir -p <http://jenkins1.ep.tp-link.com/job/FEP_SOURCE_20240927/ws/buildroot/build/armv8_7.5.0_musl/build/tplink/libDcm-1.0/> && cd <http://jenkins1.ep.tp-link.com/job/FEP_SOURCE_20240927/ws/buildroot/build/armv8_7.5.0_musl/build/tplink/libDcm-1.0/> && rm -f CMakeCache.txt && PATH="<http://jenkins1.ep.tp-link.com/job/FEP_SOURCE_20240927/ws/buildroot/build/armv8_7.5.0_musl/host/bin>:<http://jenkins1.ep.tp-link.com/job/FEP_SOURCE_20240927/ws/buildroot/build/armv8_7.5.0_musl/host/sbin>:/usr/local/bin:/usr/bin" <http://jenkins1.ep.tp-link.com/job/FEP_SOURCE_20240927/ws/buildroot/build/armv8_7.5.0_musl/host/bin/cmake> <http://jenkins1.ep.tp-link.com/job/FEP_SOURCE_20240927/ws/buildroot/build/armv8_7.5.0_musl/build/tplink/libDcm-1.0/> -DCMAKE_TOOLCHAIN_FILE="<http://jenkins1.ep.tp-link.com/job/FEP_SOURCE_20240927/ws/buildroot/build/armv8_7.5.0_musl/host/share/buildroot/toolchainfile.cmake"> -DCMAKE_INSTALL_PREFIX="/usr" -DCMAKE_COLOR_MAKEFILE=OFF -DBUILD_DOC=OFF -DBUILD_DOCS=OFF -DBUILD_EXAMPLE=OFF -DBUILD_EXAMPLES=OFF -DBUILD_TEST=OFF -DBUILD_TESTS=OFF -DBUILD_TESTING=OFF -DBUILD_SHARED_LIBS=ON -DCMAKE_C_FLAGS="-pthread -lm -lrt -ldl -DHAVE_INET_PTON -g" ) -- The C compiler identification is GNU 7.5.0 -- The CXX compiler identification is GNU 7.5.0 -- Check for working C compiler: <http://jenkins1.ep.tp-link.com/job/FEP_SOURCE_20240927/ws/buildroot/build/armv8_7.5.0_musl/host/bin/aarch64-openwrt-linux-musl-gcc> -- Check for working C compiler: <http://jenkins1.ep.tp-link.com/job/FEP_SOURCE_20240927/ws/buildroot/build/armv8_7.5.0_musl/host/bin/aarch64-openwrt-linux-musl-gcc> -- works -- Detecting C compiler ABI info -- Detecting C compiler ABI info - done -- Detecting C compile features -- Detecting C compile features - done -- Check for working CXX compiler: <http://jenkins1.ep.tp-link.com/job/FEP_SOURCE_20240927/ws/buildroot/build/armv8_7.5.0_musl/host/bin/aarch64-openwrt-linux-musl-g++> -- Check for working CXX compiler: <http://jenkins1.ep.tp-link.com/job/FEP_SOURCE_20240927/ws/buildroot/build/armv8_7.5.0_musl/host/bin/aarch64-openwrt-linux-musl-g++> -- works -- Detecting CXX compiler ABI info -- Detecting CXX compiler ABI info - done -- Detecting CXX compile features -- Detecting CXX compile features - done CMake Warning (dev) at CMakeLists.txt:22 (LINK_DIRECTORIES): This command specifies the relative path ../lib as a link directory. Policy CMP0015 is not set: link_directories() treats paths relative to the source dir. Run "cmake --help-policy CMP0015" for policy details. Use the cmake_policy command to set the policy and suppress this warning. This warning is for project developers. Use -Wno-dev to suppress it. -- Configuring done CMake Warning (dev) in CMakeLists.txt: Policy CMP0081 is not set: Relative paths not allowed in LINK_DIRECTORIES target property. Run "cmake --help-policy CMP0081" for policy details. Use the cmake_policy command to set the policy and suppress this warning. Found relative path while evaluating link directories of "libDcm": "../lib" This warning is for project developers. Use -Wno-dev to suppress it. CMake Warning (dev) in CMakeLists.txt: Policy CMP0081 is not set: Relative paths not allowed in LINK_DIRECTORIES target property. Run "cmake --help-policy CMP0081" for policy details. Use the cmake_policy command to set the policy and suppress this warning. Found relative path while evaluating link directories of "libDcm": "../lib" This warning is for project developers. Use -Wno-dev to suppress it. -- Generating done CMake Warning: Manually-specified variables were not used by the project: BUILD_DOC BUILD_DOCS BUILD_EXAMPLE BUILD_EXAMPLES BUILD_TEST BUILD_TESTING BUILD_TESTS -- Build files have been written to: <http://jenkins1.ep.tp-link.com/job/FEP_SOURCE_20240927/ws/buildroot/build/armv8_7.5.0_musl/build/tplink/libDcm-1.0> >>> libDcm 1.0 Building PATH="<http://jenkins1.ep.tp-link.com/job/FEP_SOURCE_20240927/ws/buildroot/build/armv8_7.5.0_musl/host/bin>:<http://jenkins1.ep.tp-link.com/job/FEP_SOURCE_20240927/ws/buildroot/build/armv8_7.5.0_musl/host/sbin>:/usr/local/bin:/usr/bin" /usr/local/bin/make -j4 -C <http://jenkins1.ep.tp-link.com/job/FEP_SOURCE_20240927/ws/buildroot/build/armv8_7.5.0_musl/build/tplink/libDcm-1.0/> Scanning dependencies of target libDcm [ 12%] Building C object CMakeFiles/libDcm.dir/libDcm.c.o [ 37%] Building C object CMakeFiles/libDcm.dir/libFileTransfer/fileSyncToDev.c.o [ 50%] Building C object CMakeFiles/libDcm.dir/libStack/libStack.c.o [ 50%] Building C object CMakeFiles/libDcm.dir/libStack/libStackFile.c.o [ 62%] Building C object CMakeFiles/libDcm.dir/libStack/libStackMad.c.o [ 75%] Building C object CMakeFiles/libDcm.dir/libMlag/libMlag.c.o [ 87%] Building C object CMakeFiles/libDcm.dir/libMlag/libMlagFile.c.o In file included from libFileTransfer/fileSyncToDev.c:20:0: ../../../../../../src/generalLib/include/gftl/file_trf.h:306:2: error: unknown type name 'FILE' FILE *fp; ^~~~ CMakeFiles/libDcm.dir/build.make:78: recipe for target 'CMakeFiles/libDcm.dir/libFileTransfer/fileSyncToDev.c.o' failed make[4]: *** [CMakeFiles/libDcm.dir/libFileTransfer/fileSyncToDev.c.o] Error 1 make[4]: *** Waiting for unfinished jobs.... CMakeFiles/Makefile2:78: recipe for target 'CMakeFiles/libDcm.dir/all' failed make[3]: *** [CMakeFiles/libDcm.dir/all] Error 2 Makefile:132: recipe for target 'all' failed make[2]: *** [all] Error 2 package/tplink/tplink-generic.mk:289: recipe for target '<http://jenkins1.ep.tp-link.com/job/FEP_SOURCE_20240927/ws/buildroot/build/armv8_7.5.0_musl/build/tplink/libDcm-1.0/.stamp_built'> failed make[1]: *** [<http://jenkins1.ep.tp-link.com/job/FEP_SOURCE_20240927/ws/buildroot/build/armv8_7.5.0_musl/build/tplink/libDcm-1.0/.stamp_built]> Error 2 Makefile:84: recipe for target '_all' failed make: *** [_all] Error 2 Build step 'Execute shell' marked build as failure Archiving artifacts
最新发布
12-23
<think>我们遇到了一个构建错误,错误信息是: ``` In file included from libFileTransfer/fileSyncToDev.c:20:0: ../../../../../../src/generalLib/include/gftl/file_trf.h:306:2: error: unknown type name 'FILE' FILE *fp; ^~~~ ``` 这个错误表明在 `file_trf.h` 头文件的第306行,使用了 `FILE` 类型,但是编译器无法识别。`FILE` 类型通常在标准C库头文件 `stdio.h` 中定义。因此,问题可能是在包含 `gftl/file_trf.h` 之前没有包含 `stdio.h`。 ### 解决方法: 1. **检查头文件包含**:确保在 `file_trf.h` 中或者在包含 `file_trf.h` 的源文件中,已经包含了 `stdio.h`。 2. **在头文件中包含必要的标准头文件**:如果 `file_trf.h` 中使用了 `FILE` 类型,那么它应该包含 `stdio.h`。 ### 具体步骤: - 打开 `file_trf.h` 文件(路径为 `src/generalLib/include/gftl/file_trf.h`)。 - 在文件的开头添加 `#include <stdio.h>`。 如果由于某些原因不能修改 `file_trf.h`,那么可以在包含 `file_trf.h` 之前,在 `fileSyncToDev.c` 中包含 `stdio.h`。 ### 修改示例: 在 `fileSyncToDev.c` 中,确保在包含 `gftl/file_trf.h` 之前包含了 `stdio.h`: ```c #include <stdio.h> // 确保包含这个 #include "gftl/file_trf.h" ``` 或者,在 `file_trf.h` 的开头加入: ```c #include <stdio.h> ``` ### 重新构建 修改后,重新构建项目。 ### 注意 这个错误发生在构建 `libDcm` 目标的过程中,因此需要修改 `file_trf.h` 或 `fileSyncToDev.c` 并重新构建。 §§相关问题§§ 1. 为什么在构建过程中会出现 `unknown type name 'FILE'` 的错误? 2. 在C语言中,`FILE` 类型是在哪个标准头文件中定义的? 3. 除了缺少头文件包含,还有哪些情况可能导致编译器无法识别 `FILE` 类型? 4. 如何预防类似的头文件包含问题在项目中出现? </think> 从构建日志分析,**编译失败的根本原因**是`libDcm`模块中缺少对`stdio.h`头文件的引用。具体错误发生在`fileSyncToDev.c`文件(第20行)包含的`gftl/file_trf.h`头文件中,编译器无法识别`FILE`类型(标准I/O库的核心类型)。以下是关键问题定位和解决方案: --- ### **错误根源分析** 1. **头文件依赖缺失** - `file_trf.h:306` 声明 `FILE *fp` 但未包含 `<stdio.h>` - 标准C库中`FILE`类型定义依赖于`stdio.h`,未包含会导致编译中断 2. **跨模块影响** - 错误发生在`libDcm`构建阶段,但源头在`generalLib/include/gftl/file_trf.h` - 表明**基础库头文件设计存在缺陷**(未处理标准头文件依赖) 3. **构建环境特异性** - 仅`armv8_7.5.0_musl`工具链报错,可能因musl库对头文件包含更严格 --- ### **解决方案** #### 立即修复(Hotfix) ```c // 修改 file_trf.h 头文件 #include <stdio.h> // 添加标准I/O头文件 struct FileTrf { FILE *fp; // 确保FILE类型可见 // ...其他成员 }; ``` #### 长期预防措施 1. **头文件自包含性检查** - 所有头文件应独立编译(通过`-Werror=missing-include-dirs`强制检测) 2. **依赖隔离** - 在`gftl/file_trf.h`中使用前向声明减少依赖: ```c #ifndef FILE_TRF_H #define FILE_TRF_H typedef struct FILE FILE; // 前向声明 struct FileTrf { FILE *fp; ... }; #endif ``` 3. **构建系统增强** - 在CMake中显式链接标准库: ```cmake target_link_libraries(libDcm PRIVATE c) # 明确链接libc ``` --- ### **验证步骤** 1. 在`file_trf.h`添加`#include <stdio.h>`后重新构建 2. 运行头文件完整性测试: ```bash for header in $(find . -name "*.h"); do gcc -fsyntax-only $header || echo "Broken: $header" done ```
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值