在STM32Cube中启动touchGFX编辑界面,编译MDK工程时遇到问题

本打算用STM32CubeMX启动touchGFX,使用的是STM32F469探索板,各项跟GFX相关的设置都设好了,就差最后在板子上验证两个软件有没有整合成功了,结果生成代码后编译完成,但是链接时出现了大量罕见错误(共计103个)如:
Error:** L6654E:** Rejected Local Symbol xx referred to from non group member xx.o(.iar.stackusage)
错误虽然数量多,但是基本都是按上述格式报错的。

由于本人水平不足,之前也从未碰到过这样的问题,实在是束手无策,就来请教论坛里各位大手子了!如果最后能成功,会把工程文件放上来,除LCD相关部分外的芯片设置和touchGFX编辑都基本接近空白,所以可以当成模板自由编辑,这样也可以免去从前繁琐的移植步骤,实现一键移植(CubeMX提供了这样的便利为什么不用呢)~

以下是部分具体的报错信息:

linking... 
469_touchGFX_interfacing_test\469_touchGFX_interfacing_test.axf: Error: L6654E: Rejected Local symbol .text7 referred to from non group member Application.o(.iar.stackusage) 
469_touchGFX_interfacing_test\469_touchGFX_interfacing_test.axf: Error: L6654E: Rejected Local symbol .text9 referred to from non group member Application.o(.iar.stackusage) 
469_touchGFX_interfacing_test\469_touchGFX_interfacing_test.axf: Error: L6654E: Rejected Local symbol .text11 referred to from non group member Application.o(.iar.stackusage) 

更新:
更换编译器并把touchgfx disable再enable,重新添加所需文件以及touchgfx-core.h 之后,报错信息数量大幅减少(现共计24件),且变成了:
Error: L6242E: Cannot Link Object xx.o as its attributes are incompatible with the image attributes.

应该会有人注意到每一段末尾的wchart-16 clashes with wchart-32,其实已经在option for target里C/C++的misc control里加上了--wchar32,否则报错成千上万……

值得注意的是,两次报错所涉及的o文件都只与touchgfx的工程中产生的对象有关,比如button,box,screennameView等,感觉只要解决这个问题,就可以离一键移植更近一步了……

更新2:
研究了一下原因是各自的枚举和宽字符宽度定义各有不同导致的这种问题……想在编译器不换成AC6的情况下在命令行输入 -fshort-enums -fshort-wchar,然而找不到命令行了……

更新3:
虽然找到了对照表,但是AC5是没有对应-fshort-enums的命令……所以要继续尝试下去的话就还需要更换成AC6,所以现在这里暂时变成了一个keil AC5换成AC6的编译器切换问题……

更新4:
成功切换为AC6之后,编译错误只剩下一个!近了,更近了!

469_touchGFX_interfacing_test\469_touchGFX_interfacing_test.axf: Error: L6683E: Merge Section TextFlashSection(texts.o) has an element size of zero

更新5:
楼主其实进行到更新4的时候无比绝望,因为最后仅剩的报错怎么看都是程序的结构性问题……然鹅,楼主发现了,生成工程之前的操作步骤可以挽救!楼主后来在STM32CubeMX生成代码后没有直接进入touchgfx,而是先点开工程并编译确保工程成功编译,再进入touchgfx控件,生成代码,debug,问题就没了,连编译器都没换……
目前进度是可以将图片加载了,但是触控还需要调整。

topmax501
topmax501 回复qq_40845081: 老哥,你的问题解决了吗?怎么报错的?
5 个月之前 回复
qq_40845081
qq_40845081 方便的话可以加一下我的QQ给我一份工程文件吗?QQ:1301633011
8 个月之前 回复
qq_40845081
qq_40845081 兄弟,我用CubeMX生成代码后直接用keil编译还是有错误,想问一下你有这个问题吗?
8 个月之前 回复

1个回答

对触控的配置也总算是完成了,题主就把如何用keil作为IDE来解决这个STM32F429I-DISC1上整合STCube与touchGFX工程的手续给整理一下作为答案po出来:

1.首先对于一个空白的STM32CubeMX工程,要使能middleware中GRAPHICS选项,必须先使能TIM,CRC,SDRAM,LTDC,DMA2D,SPI,其次对于触控功能而言,I2C也应当使能。

2.设置层面上,关键点只有三点,一是LCD时钟要设置为6MHz;二是屏幕的显示驱动芯片要使能,GRAPHICS中找到相应选项enable;三是GRAPHICS 中platform settings中所有引脚包括SPI都要设置好,这一点不能偷懒。

3.做好上述步骤后,先配置好工程选项,如命名等,点选generate code生成Keil工程,然后再keil工程中继续编辑。

4.keil工程中应当先添加新的组,将stmf429idiscovery系列库中与命名为ts的两封文件的所有有关文件(只要被include了就源文件头文件都带上)都添加进去,然后找到touchController.c, include ts头文件,并取消下面几行中被注释掉的BSP函数

5.编译工程,在错误信息提示的两个函数前添加extern “C”一个在main.c 开头,一个在boardconfig.c 末尾。

6.再次编译,成功后即可在STCube中运行touchgfx进行GUI编辑了,至此大功告成。

注意:如果是用的野生屏幕,需要自行确定正确的LCD时钟,自行配置芯片与之连接的引脚(stm32F429芯片的情况下只能使用RGB屏幕)自行配制驱动显示芯片,驱动触控芯片,步骤4不适用于此情况。

希望能对研究touchGFX的同道有帮助。

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
四字节16进制转换浮点数时变成零 stm32
四字节16进制转换浮点数时变成零 stm32 0x40,0xdd,0x1e,0xb8转化成正确的浮点数是6.91,但是在mdk中强制转换类型后串口回来的是-0.00038
MDK5编译时遇到c/c++遇到问题的窗口
MDK5软件编译STM32c8t6程序的时候到一个.c文件时就出问题,结果说打不开这个.c文件。然而我同学编译一摸一样的程序时,就没有错误没有警告。那个.c文件好像叫croe3m.c什么的ARM内核文件。学长说是电脑用户名用的是中文不行,可是我换成英文的还是不可以。重装了好几回,还是不行。求解!
keil 5 mdk 建立工程问题
我用原子的stm32 的书 ,用它给的文件和步骤建立工程为啥会出错,但他给的工程却能编译成功, 一样的文件啊 ![图片说明](https://img-ask.csdn.net/upload/201709/17/1505656695_732407.png)
Keil MDK5调试时单步要按好几下才能进入下一步,怎么办?
该成英文路径也不行!怎么办?在STM32调试过程中,单步总是在汇编窗口中,无法实现C语言的单步?
STM32 串口收发数据出错
#include "stm32f10x.h" #include <stdio.h> /************************************************* 函数: void RCC_Configuration(void) 功能: 复位和时钟控制 配置 参数: 无 返回: 无 **************************************************/ void RCC_Configuration(void) { ErrorStatus HSEStartUpStatus; //定义外部高速晶体启动状态枚举变量 RCC_DeInit(); //复位RCC外部设备寄存器到默认值 RCC_HSEConfig(RCC_HSE_ON); //打开外部高速晶振 HSEStartUpStatus = RCC_WaitForHSEStartUp(); //等待外部高速时钟准备好 if(HSEStartUpStatus == SUCCESS) //外部高速时钟已经准别好 { FLASH_PrefetchBufferCmd(FLASH_PrefetchBuffer_Enable); //开启FLASH预读缓冲功能,加速FLASH的读取。所有程序中必须的用法.位置:RCC初始化子函数里面,时钟起振之后 FLASH_SetLatency(FLASH_Latency_2); //flash操作的延时 RCC_HCLKConfig(RCC_SYSCLK_Div1); //配置AHB(HCLK)时钟等于==SYSCLK RCC_PCLK2Config(RCC_HCLK_Div1); //配置APB2(PCLK2)钟==AHB时钟 RCC_PCLK1Config(RCC_HCLK_Div2); //配置APB1(PCLK1)钟==AHB1/2时钟 RCC_PLLConfig(RCC_PLLSource_HSE_Div1, RCC_PLLMul_9); //配置PLL时钟 == 外部高速晶体时钟 * 9 = 72MHz RCC_PLLCmd(ENABLE); //使能PLL时钟 while(RCC_GetFlagStatus(RCC_FLAG_PLLRDY) == RESET) //等待PLL时钟就绪 { } RCC_SYSCLKConfig(RCC_SYSCLKSource_PLLCLK); //配置系统时钟 = PLL时钟 while(RCC_GetSYSCLKSource() != 0x08) //检查PLL时钟是否作为系统时钟 { } } } /******************************************************************************* * Function Name : NVIC_Configuration * Description : Configures NVIC and Vector Table base location. * Input : None * Output : None * Return : None *******************************************************************************/ void NVIC_Configuration(void) { NVIC_InitTypeDef NVIC_InitStructure; /* Set the Vector Table base location at 0x08000000 */ NVIC_SetVectorTable(NVIC_VectTab_FLASH, 0x0); /* Configure the NVIC Preemption Priority Bits */ NVIC_PriorityGroupConfig(NVIC_PriorityGroup_0); /* Enable the USART1 Interrupt */ NVIC_InitStructure.NVIC_IRQChannel = USART3_IRQn; //通道设置为串口3中断 NVIC_InitStructure.NVIC_IRQChannelSubPriority = 0; //中断响应优先级0 NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE; //打开中断 NVIC_Init(&NVIC_InitStructure); //初始化 } /******************************************************************************* 函数名:USART3_Configuration 输 入: 输 出: 功能说明: 初始化串口硬件设备,启用中断 配置步骤: (1)打开GPIO和USART3的时钟 (2)设置USART3两个管脚GPIO模式 (3)配置USART3数据格式、波特率等参数 (4)使能USART3接收中断功能 (5)最后使能USART3功能 */ void USART3_Configuration(void) { GPIO_InitTypeDef GPIO_InitStructure; USART_InitTypeDef USART_InitStructure; /* 第1步:打开GPIO和USART部件的时钟 */ RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB | RCC_APB2Periph_AFIO, ENABLE); RCC_APB1PeriphClockCmd(RCC_APB1Periph_USART3, ENABLE); /* 第2步:将USART Tx的GPIO配置为推挽复用模式 */ GPIO_InitStructure.GPIO_Pin = GPIO_Pin_10; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP; GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; GPIO_Init(GPIOB, &GPIO_InitStructure); /* 第3步:将USART Rx的GPIO配置为浮空输入模式*/ GPIO_InitStructure.GPIO_Pin = GPIO_Pin_11; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING; GPIO_Init(GPIOB, &GPIO_InitStructure); /* 第4步:配置USART3参数*/ USART_InitStructure.USART_BaudRate = 9600; USART_InitStructure.USART_WordLength = USART_WordLength_8b; USART_InitStructure.USART_StopBits = USART_StopBits_1; USART_InitStructure.USART_Parity = USART_Parity_No; USART_InitStructure.USART_HardwareFlowControl = USART_HardwareFlowControl_None; USART_InitStructure.USART_Mode = USART_Mode_Rx | USART_Mode_Tx; USART_Init(USART3, &USART_InitStructure); /* 若接收数据寄存器满,则产生中断 */ USART_ITConfig(USART3, USART_IT_RXNE, ENABLE); /* 第5步:使能 USART3, 配置完毕 */ USART_Cmd(USART3, ENABLE); /* 如下语句解决第1个字节无法正确发送出去的问题 */ USART_ClearFlag(USART3, USART_FLAG_TC); // 清标志 } /*******************************************************************/ /* */ /* STM32向串口3发送1字节 */ /* */ /* */ /*******************************************************************/ void Uart3_PutChar(u8 ch) { USART_SendData(USART3, (u8) ch); while(USART_GetFlagStatus(USART3, USART_FLAG_TXE) == RESET); } /*******************************************************************/ /* */ /* STM32在串口3接收1字节 */ /* 说明:串口3接收中断 */ /* */ /*******************************************************************/ void USART3_IRQHandler(void) { u8 dat; if(USART_GetITStatus(USART3, USART_IT_RXNE) != RESET) //若接收数据寄存器满 { dat = USART_ReceiveData(USART3); Uart3_PutChar(dat); } } /************************************************* 函数: int main(void) 功能: main主函数 参数: 无 返回: 无 **************************************************/ int main(void) { u8 abc[]={0x11,0x12,0x13,0x14}; u8 i; RCC_Configuration(); NVIC_Configuration(); USART3_Configuration(); for(i=0;i<4;i++) {Uart3_PutChar(abc[i]);} while(1); }
在mdk中用共用体,给它的成员赋值,然后报错了 请教大神怎么解决
在mdk中用共用体,给它的成员赋值,然后报错了 请教大神怎么解决![图片说明](https://img-ask.csdn.net/upload/201909/20/1568943168_38872.png)
MDK在线调试运行(run)状态下,停止,MDK直接退出原因
MDK5.14环境,工程在DEBUG在线调试运行后,STOP或者退出debug模式时,MDK软件直接关闭了,什么提示都没有,找不到原因? 我尝试过的方法: 1、更新JLINK驱动; 2、更换JLINK; 3、用STLINK及跟新驱动; 4、MDK软件重新安装; 5、去掉路径中的中文名字; 6、WINDOWS系统重做。 折腾了一天,也没找到原因。
KEIL MDK5.1是否兼容WIN7 WIN8 WIN10 32 64这些版本?
KEIL MDK5.1是否兼容WIN7 WIN8 WIN10 32 64这些版本?
观察到一个现象:usb HID设备在成功枚举完了之后就与主机不通讯了,怎么重新开始通讯呢?
stm32f103zet6,开发环境mdk517,用的是st官方给的hid的键盘的例程,usb能成功被枚举,而且显示有一个标准的输入设备,但是我再debug模式下起初在枚举阶段我能看到在中断函数中设置的中断点出停下来,说明主机给设备发了一些东西,但是当主机成功枚举之后,pc上显示这个设备运转正常,这个时候再在中断函数中任何地方设置断点都没有作用,也就是说这时主机就没有给设备发in包,那岂不是直接忽略了这个设备了?那这个设备的动作怎么发到主机上啊?我试过从设备管理器中禁用设备时,设备有发生中断,启用时也是,但是不管时就没数据交流,那么要实现鼠标的功能的话,鼠标动了主机根本不知道啊,怎么搞?
MDK5仿真烧写STM32程序,第三个进度条什么意思?
没有涩币悬赏,我可以帮忙下东西!!!!!!!!!!!!!!!!
STM32F103RC 软解码MP3遇到问题
接触STM32现在软件解码MP3时遇到问题。软件环境,STM32CubeMX4.14 + RAM MDK4.72 (stm32使用资源:SDIO + TIM6 + DAC + FATS) 没使用DMA现像如下: 使用以下方式打开MP3文件播放正常: f_readdir(&DirInf,&FileInf); f_open(&f_MP3,"XXXX.MP3",FA_READ); MpegAudioDecoder(&f_MP3); //=============================== char *Fname; Fname=""XXXX.MP3""; f_readdir(&DirInf,&FileInf); f_open(&f_MP3,Fname,FA_READ); MpegAudioDecoder(&f_MP3); //=============================== 使用以下方式打开MP3文件播放时,开定时器中断马上死机,但最开始读文件数据正常。 f_readdir(&DirInf,&FileInf); f_open(&f_MP3,FileInf.lfname,FA_READ); MpegAudioDecoder(&f_MP3); //============================= char *Fname; Fname= FileInf.lfname; f_readdir(&DirInf,&FileInf); f_open(&f_MP3,FileInf.lfname,FA_READ); MpegAudioDecoder(&f_MP3); //============================= 不知问题出在哪儿,求高人指点。多谢谢!
Minecraft1.12.2forge mdk配置工作环境时总是反编译失败,要怎样解决?
![图片说明](https://img-ask.csdn.net/upload/201906/03/1559573310_557536.png)![图片说明](https://img-ask.csdn.net/upload/201906/03/1559573323_146718.png) 运行的时候总是卡在56%然后就报错,本人萌新求大佬帮忙看下是哪出错了
ARM汇编,MDK,ARM初学
我是一名linux嵌入式初学者,现在在看ARM处理器。 使用的是一块S3C2440的开发板,目前的开发调试环境是KEIL4。 我在一个添加了启动代码的工程中添加一个自己编写的简单汇编文件。然后在启动代码的C入口点处修改,import添加的简单汇编文件中的程序段,并使其跳转到该程序段。 编译不能通过,错误提示的我编写的汇编文件中定义的label没有定义。想知道如何解决。 我想在启动代码执行结束后调用一个定义在其他文件中的汇编程序。
stm32中写关于usart的程序中,如果要使用printf,现在我看到2种方式,
一种是用微库,就是在MDK里面打开microlib,程序中添加一个重定义的程序就可以了,另一种是用半主机,这种方式不用打开microlib,半主机不懂事什么意思,他们的区别是什么,
求助:MDK4下载时出现问题
Error: Cannot load driver 'D:\special\MDK4\ARM\BIN\coocox-agdi.dll'. Possible Reasons: - Driver DLL could not be found in the specified path - Driver DLL requires additional DLL's which are not installed - Required Hardware Drivers are not installed 我用的板子是CT117E 谢谢了
使用MDK建立项目模板,运行出错,error5?
配置项目模块时,显示错误 ..\CORE\core_cm3.h(90): error: #5: cannot open source input file "stdint.h": No such file or directory _我查看了了cm3.h文本里的代码,没看出问题,是预编译头的问题ma 标签:#c++,#STM,#MDK4
mdk5明明只定义了一遍int deng,为什么编译后会提示错误重复定义?
main.c 赋值 deng=1; inf.h定义 int deng; inf.c判断 void iff(void){ if(deng==1){} } test.c调用iff 为什么只定义了一遍的deng,会出错误提示重复定义。 Error: L6200E: Symbol deng multiply defined (by inf.o and main.o). Error: L6200E: Symbol deng multiply defined (by test.o and main.o). Not enough information to list image symbols. Not enough information to list the image map. 求解
MDK的结构体问题struct
typedef struct { uint8_t lowsel; uint8_t highsel; } hl; hl HighLowSel[16] = {{0x07,0x00},{0x06,0x00},{0x05,0x00},{0x04,0x00}, {0x03,0x00},{0x02,0x00},{0x01,0x00},{0x00,0x00}, {0x07,0x01},{0x06,0x01},{0x05,0x01},{0x04,0x01}, {0x03,0x01},{0x02,0x01},{0x01,0x01},{0x00,0x01}}; 编译提示出错 .\Obj\Project.axf: Error: L6200E: Symbol HighLowSel multiply defined (by board.o and main.o). 请教,如何修改
MDK5编译出现下图问题,百度找了许多方法都没用,求助
![图片说明](https://img-ask.csdn.net/upload/201707/16/1500170159_541979.png)
爬虫福利二 之 妹子图网MM批量下载
爬虫福利一:27报网MM批量下载    点击 看了本文,相信大家对爬虫一定会产生强烈的兴趣,激励自己去学习爬虫,在这里提前祝:大家学有所成! 目标网站:妹子图网 环境:Python3.x 相关第三方模块:requests、beautifulsoup4 Re:各位在测试时只需要将代码里的变量 path 指定为你当前系统要保存的路径,使用 python xxx.py 或IDE运行即可。
字节跳动视频编解码面经
三四月份投了字节跳动的实习(图形图像岗位),然后hr打电话过来问了一下会不会opengl,c++,shador,当时只会一点c++,其他两个都不会,也就直接被拒了。 七月初内推了字节跳动的提前批,因为内推没有具体的岗位,hr又打电话问要不要考虑一下图形图像岗,我说实习投过这个岗位不合适,不会opengl和shador,然后hr就说秋招更看重基础。我当时想着能进去就不错了,管他哪个岗呢,就同意了面试...
Java学习的正确打开方式
在博主认为,对于入门级学习java的最佳学习方法莫过于视频+博客+书籍+总结,前三者博主将淋漓尽致地挥毫于这篇博客文章中,至于总结在于个人,实际上越到后面你会发现学习的最好方式就是阅读参考官方文档其次就是国内的书籍,博客次之,这又是一个层次了,这里暂时不提后面再谈。博主将为各位入门java保驾护航,各位只管冲鸭!!!上天是公平的,只要不辜负时间,时间自然不会辜负你。 何谓学习?博主所理解的学习,它是一个过程,是一个不断累积、不断沉淀、不断总结、善于传达自己的个人见解以及乐于分享的过程。
程序员必须掌握的核心算法有哪些?
由于我之前一直强调数据结构以及算法学习的重要性,所以就有一些读者经常问我,数据结构与算法应该要学习到哪个程度呢?,说实话,这个问题我不知道要怎么回答你,主要取决于你想学习到哪些程度,不过针对这个问题,我稍微总结一下我学过的算法知识点,以及我觉得值得学习的算法。这些算法与数据结构的学习大多数是零散的,并没有一本把他们全部覆盖的书籍。下面是我觉得值得学习的一些算法以及数据结构,当然,我也会整理一些看过
Python 基础(一):入门必备知识
目录1 标识符2 关键字3 引号4 编码5 输入输出6 缩进7 多行8 注释9 数据类型10 运算符10.1 常用运算符10.2 运算符优先级 1 标识符 标识符是编程时使用的名字,用于给变量、函数、语句块等命名,Python 中标识符由字母、数字、下划线组成,不能以数字开头,区分大小写。 以下划线开头的标识符有特殊含义,单下划线开头的标识符,如:_xxx ,表示不能直接访问的类属性,需通过类提供
兼职程序员一般可以从什么平台接私活?
这个问题我进行了系统性的总结,以下将进行言简意赅的说明和渠道提供,希望对各位小猿/小媛们有帮助~ 根据我们的经验,程序员兼职主要分为三种:兼职职位众包、项目整包和自由职业者驻场。 所谓的兼职职位众包,指的是需求方这边有自有工程师配合,只需要某个职位的工程师开发某个模块的项目。比如开发一个 app,后端接口有人开发,但是缺少 iOS 前端开发工程师,那么他们就会发布一个职位招聘前端,来配合公司一...
程序员接私活怎样防止做完了不给钱?
首先跟大家说明一点,我们做 IT 类的外包开发,是非标品开发,所以很有可能在开发过程中会有这样那样的需求修改,而这种需求修改很容易造成扯皮,进而影响到费用支付,甚至出现做完了项目收不到钱的情况。 那么,怎么保证自己的薪酬安全呢? 我们在开工前,一定要做好一些证据方面的准备(也就是“讨薪”的理论依据),这其中最重要的就是需求文档和验收标准。一定要让需求方提供这两个文档资料作为开发的基础。之后开发
Python十大装B语法
Python 是一种代表简单思想的语言,其语法相对简单,很容易上手。不过,如果就此小视 Python 语法的精妙和深邃,那就大错特错了。本文精心筛选了最能展现 Python 语法之精妙的十个知识点,并附上详细的实例代码。如能在实战中融会贯通、灵活使用,必将使代码更为精炼、高效,同时也会极大提升代码B格,使之看上去更老练,读起来更优雅。 1. for - else 什么?不是 if 和 else 才
数据库优化 - SQL优化
前面一篇文章从实例的角度进行数据库优化,通过配置一些参数让数据库性能达到最优。但是一些“不好”的SQL也会导致数据库查询变慢,影响业务流程。本文从SQL角度进行数据库优化,提升SQL运行效率。 判断问题SQL 判断SQL是否有问题时可以通过两个表象进行判断: 系统级别表象 CPU消耗严重 IO等待严重 页面响应时间过长
2019年11月中国大陆编程语言排行榜
2019年11月2日,我统计了某招聘网站,获得有效程序员招聘数据9万条。针对招聘信息,提取编程语言关键字,并统计如下: 编程语言比例 rank pl_ percentage 1 java 33.62% 2 c/c++ 16.42% 3 c_sharp 12.82% 4 javascript 12.31% 5 python 7.93% 6 go 7.25% 7
写了很久,这是一份最适合/贴切普通大众/科班/非科班的『学习路线』
说实话,对于学习路线这种文章我一般是不写的,大家看我的文章也知道,我是很少写建议别人怎么样怎么样的文章,更多的是,写自己的真实经历,然后供大家去参考,这样子,我内心也比较踏实,也不怕误导他人。 但是,最近好多人问我学习路线,而且很多大一大二的,说自己很迷茫,看到我那篇 普普通通,我的三年大学 之后很受激励,觉得自己也能行,(是的,别太浪,你一定能行)希望我能给他个学习路线,说
经典算法(5)杨辉三角
写在前面: 我是 扬帆向海,这个昵称来源于我的名字以及女朋友的名字。我热爱技术、热爱开源、热爱编程。技术是开源的、知识是共享的。 这博客是对自己学习的一点点总结及记录,如果您对 Java、算法 感兴趣,可以关注我的动态,我们一起学习。 用知识改变命运,让我们的家人过上更好的生活。 目录一、杨辉三角的介绍二、杨辉三角的算法思想三、代码实现1.第一种写法2.第二种写法 一、杨辉三角的介绍 百度
腾讯算法面试题:64匹马8个跑道需要多少轮才能选出最快的四匹?
昨天,有网友私信我,说去阿里面试,彻底的被打击到了。问了为什么网上大量使用ThreadLocal的源码都会加上private static?他被难住了,因为他从来都没有考虑过这个问题。无独有偶,今天笔者又发现有网友吐槽了一道腾讯的面试题,我们一起来看看。 腾讯算法面试题:64匹马8个跑道需要多少轮才能选出最快的四匹? 在互联网职场论坛,一名程序员发帖求助到。二面腾讯,其中一个算法题:64匹
面试官:你连RESTful都不知道我怎么敢要你?
面试官:了解RESTful吗? 我:听说过。 面试官:那什么是RESTful? 我:就是用起来很规范,挺好的 面试官:是RESTful挺好的,还是自我感觉挺好的 我:都挺好的。 面试官:… 把门关上。 我:… 要干嘛?先关上再说。 面试官:我说出去把门关上。 我:what ?,夺门而去 文章目录01 前言02 RESTful的来源03 RESTful6大原则1. C-S架构2. 无状态3.统一的接
为啥国人偏爱Mybatis,而老外喜欢Hibernate/JPA呢?
关于SQL和ORM的争论,永远都不会终止,我也一直在思考这个问题。昨天又跟群里的小伙伴进行了一番讨论,感触还是有一些,于是就有了今天这篇文。 声明:本文不会下关于Mybatis和JPA两个持久层框架哪个更好这样的结论。只是摆事实,讲道理,所以,请各位看官勿喷。 一、事件起因 关于Mybatis和JPA孰优孰劣的问题,争论已经很多年了。一直也没有结论,毕竟每个人的喜好和习惯是大不相同的。我也看
SQL-小白最佳入门sql查询一
一 说明 如果是初学者,建议去网上寻找安装Mysql的文章安装,以及使用navicat连接数据库,以后的示例基本是使用mysql数据库管理系统; 二 准备前提 需要建立一张学生表,列分别是id,名称,年龄,学生信息;本示例中文章篇幅原因SQL注释略; 建表语句: CREATE TABLE `student` ( `id` int(11) NOT NULL AUTO_INCREMENT, `
项目中的if else太多了,该怎么重构?
介绍 最近跟着公司的大佬开发了一款IM系统,类似QQ和微信哈,就是聊天软件。我们有一部分业务逻辑是这样的 if (msgType = "文本") { // dosomething } else if(msgType = "图片") { // doshomething } else if(msgType = "视频") { // doshomething } else { // dosho
致 Python 初学者
文章目录1. 前言2. 明确学习目标,不急于求成,不好高骛远3. 在开始学习 Python 之前,你需要做一些准备2.1 Python 的各种发行版2.2 安装 Python2.3 选择一款趁手的开发工具3. 习惯使用IDLE,这是学习python最好的方式4. 严格遵从编码规范5. 代码的运行、调试5. 模块管理5.1 同时安装了py2/py35.2 使用Anaconda,或者通过IDE来安装模
“狗屁不通文章生成器”登顶GitHub热榜,分分钟写出万字形式主义大作
一、垃圾文字生成器介绍 最近在浏览GitHub的时候,发现了这样一个骨骼清奇的雷人项目,而且热度还特别高。 项目中文名:狗屁不通文章生成器 项目英文名:BullshitGenerator 根据作者的介绍,他是偶尔需要一些中文文字用于GUI开发时测试文本渲染,因此开发了这个废话生成器。但由于生成的废话实在是太过富于哲理,所以最近已经被小伙伴们给玩坏了。 他的文风可能是这样的: 你发现,
程序员:我终于知道post和get的区别
IT界知名的程序员曾说:对于那些月薪三万以下,自称IT工程师的码农们,其实我们从来没有把他们归为我们IT工程师的队伍。他们虽然总是以IT工程师自居,但只是他们一厢情愿罢了。 此话一出,不知激起了多少(码农)程序员的愤怒,却又无可奈何,于是码农问程序员。 码农:你知道get和post请求到底有什么区别? 程序员:你看这篇就知道了。 码农:你月薪三万了? 程序员:嗯。 码农:你是怎么做到的? 程序员:
《程序人生》系列-这个程序员只用了20行代码就拿了冠军
你知道的越多,你不知道的越多 点赞再看,养成习惯GitHub上已经开源https://github.com/JavaFamily,有一线大厂面试点脑图,欢迎Star和完善 前言 这一期不算《吊打面试官》系列的,所有没前言我直接开始。 絮叨 本来应该是没有这期的,看过我上期的小伙伴应该是知道的嘛,双十一比较忙嘛,要值班又要去帮忙拍摄年会的视频素材,还得搞个程序员一天的Vlog,还要写BU
加快推动区块链技术和产业创新发展,2019可信区块链峰会在京召开
11月8日,由中国信息通信研究院、中国通信标准化协会、中国互联网协会、可信区块链推进计划联合主办,科技行者协办的2019可信区块链峰会将在北京悠唐皇冠假日酒店开幕。   区块链技术被认为是继蒸汽机、电力、互联网之后,下一代颠覆性的核心技术。如果说蒸汽机释放了人类的生产力,电力解决了人类基本的生活需求,互联网彻底改变了信息传递的方式,区块链作为构造信任的技术有重要的价值。   1...
程序员把地府后台管理系统做出来了,还有3.0版本!12月7号最新消息:已在开发中有github地址
第一幕:缘起 听说阎王爷要做个生死簿后台管理系统,我们派去了一个程序员…… 996程序员做的梦: 第一场:团队招募 为了应对地府管理危机,阎王打算找“人”开发一套地府后台管理系统,于是就在地府总经办群中发了项目需求。 话说还是中国电信的信号好,地府都是满格,哈哈!!! 经常会有外行朋友问:看某网站做的不错,功能也简单,你帮忙做一下? 而这次,面对这样的需求,这个程序员
网易云6亿用户音乐推荐算法
网易云音乐是音乐爱好者的集聚地,云音乐推荐系统致力于通过 AI 算法的落地,实现用户千人千面的个性化推荐,为用户带来不一样的听歌体验。 本次分享重点介绍 AI 算法在音乐推荐中的应用实践,以及在算法落地过程中遇到的挑战和解决方案。 将从如下两个部分展开: AI 算法在音乐推荐中的应用 音乐场景下的 AI 思考 从 2013 年 4 月正式上线至今,网易云音乐平台持续提供着:乐屏社区、UGC
8年经验面试官详解 Java 面试秘诀
    作者 | 胡书敏 责编 | 刘静 出品 | CSDN(ID:CSDNnews) 本人目前在一家知名外企担任架构师,而且最近八年来,在多家外企和互联网公司担任Java技术面试官,前后累计面试了有两三百位候选人。在本文里,就将结合本人的面试经验,针对Java初学者、Java初级开发和Java开发,给出若干准备简历和准备面试的建议。   Java程序员准备和投递简历的实
面试官如何考察你的思维方式?
1.两种思维方式在求职面试中,经常会考察这种问题:北京有多少量特斯拉汽车? 某胡同口的煎饼摊一年能卖出多少个煎饼? 深圳有多少个产品经理? 一辆公交车里能装下多少个乒乓球? 一
碎片化的时代,如何学习
今天周末,和大家聊聊学习这件事情。 在如今这个社会,我们的时间被各类 APP 撕的粉碎。 刷知乎、刷微博、刷朋友圈; 看论坛、看博客、看公号; 等等形形色色的信息和知识获取方式一个都不错过。 貌似学了很多,但是却感觉没什么用。 要解决上面这些问题,首先要分清楚一点,什么是信息,什么是知识。 那什么是信息呢? 你一切听到的、看到的,都是信息,比如微博上的明星出轨、微信中的表情大战、抖音上的...
so easy! 10行代码写个"狗屁不通"文章生成器
前几天,GitHub 有个开源项目特别火,只要输入标题就可以生成一篇长长的文章。 背后实现代码一定很复杂吧,里面一定有很多高深莫测的机器学习等复杂算法 不过,当我看了源代码之后 这程序不到50行 尽管我有多年的Python经验,但我竟然一时也没有看懂 当然啦,原作者也说了,这个代码也是在无聊中诞生的,平时撸码是不写中文变量名的, 中文...
知乎高赞:中国有什么拿得出手的开源软件产品?(整理自本人原创回答)
知乎高赞:中国有什么拿得出手的开源软件产品? 在知乎上,有个问题问“中国有什么拿得出手的开源软件产品(在 GitHub 等社区受欢迎度较好的)?” 事实上,还不少呢~ 本人于2019.7.6进行了较为全面的回答,对这些受欢迎的 Github 开源项目分类整理如下: 分布式计算、云平台相关工具类 1.SkyWalking,作者吴晟、刘浩杨 等等 仓库地址: apache/skywalking 更...
相关热词 如何提升c#开发能力 矩阵乘法c# c#调用谷歌浏览器 c# 去空格去转义符 c#用户登录窗体代码 c# 流 c# linux 可视化 c# mvc 返回图片 c# 像素空间 c# 日期 最后一天
立即提问