b2c信息网

您现在的位置是:首页 > 昨日新闻 > 正文

昨日新闻

windows源码编译(windows 源码)

hacker2022-06-09 00:15:23昨日新闻65
本文目录一览:1、如何在Windows平台下编译esp8266SOC源码

本文目录一览:

如何在Windows平台下编译esp8266 SOC源码

一,安装编译环境

1,下载安装文件Fans_ESP8266_SDK_Make.exe:

双击Fans_ESP8266_SDK_Make.exe执行安装,默认安装到C盘,不用改变安装路径,一路遇到选择框就点击“确定”和“允许”。安装完成后,会在C盘根目录下生成三个文件夹:c:\python27, c:\ESP8266_SDK_Fans_V2.0, c:\usr

2,需要配置license,用文本编译器打开C:\usr\xtensa\XtDevTools\install\tools\RC-2010.1-win32\XtensaTools\Tools\lic\license.dat,在里面有如下一行:HOSTID=1008B149EFD7,等号后面的是本机的mac地址,需要修改成自己电脑的MAC。选择右下角的网络连接图标,选择网络连接详情可查看:

二,编译

进入到C:\usr\xtensa\esp_iot_sdk目录下,下载测试用例(),将auto_app_test和auto_lib两个文件夹拷贝到这里,然后进入C:\usr\install目录下,双击“xtensa_IOT”,将会运行一个dos窗口,最后一行应该是C:\usr\xtensa\esp_iot_sdk, 然后执行cd auto_app_test,

输入make,如果编译成功会有如下结果:

输入makebin会生成对应的镜像包Fans_SDK_flash.bin文件

三,刷机

首先确保PC机上没有其它串口设备,可进入“设备管理”中查看com,如果有多个,不能确保一定能烧写成功。

用USB转串口板连接ESP8266串口脚到PC的USB口上,在“设备管理”中查看是否会生成一个com设备。同时需要将GPIO0接GND。(在我们的开发套件上,只需要把USB线把板和PC连上,用线将D3与GND连接,就OK了)

在dos窗口上输入burnbin,就会开始刷机了。

当出现以下情况时,请确保1,GPIO0接GND,2,串口设置没有被其它软件打开。

四,运行

刷机完成后,将GPIO0与GND断开,重新断电或reset ,即可重新去行。

在windows下怎样编译源代码安装

如果是VC++程序,可以使用vc++6.0,visual studio2003,2005等,

如果是c, c++语言,除了以上编译器外,还有turbo c++,Dev c++,等, 前提是 程序是可以从其他平台移植到windows下。

如果是Java,可以使用JDK1.6,或Eclipse。

如何在Windows下编译或调试MySQL

用vs code 就可以了。

Visual Studio Code

Visual Studio Code(简称VS Code)是由微软开发的,同时支持Windows、Linux和macOS操作系统的开源文本编辑器。它支持调试,内置了Git 版本控制功能,同时也具有开发环境功能,例如代码补全(类似于IntelliSense)、代码片段、代码重构等。该编辑器支持用户自定义配置,例如改变主题颜色、键盘快捷方式、编辑器属性和其他参数,还支持扩展程序并在编辑器中内置了扩展程序管理的功能。

安装LLDB

LLDB是LLVM编译器的一部分,推荐使用Homebrew安装LLVM工具集,不建议使用系统自带的LLDB,安装前必须先创建证书否则无法安装,步骤如下:

创建完成后,开始安装LLVM

brew install llvm --with-python@2 --with-lldb

安装插件

VS Code自带有debug功能,这里我推荐使用LLDB Debugger插件。

接下来,为项目配置调试参数。

配置调试参数

使用VS Code打开MySQL源码目录,在侧边栏选择debug栏目,添加配置,program输入需要调试的程序路径,这里选择你编译好的mysqld路径,args输入程序启动所需的参数,通常会指定mysqld的配置文件。这样就配置好了,是不是很简单。

启动调试

点击启动按钮,启动后如果没有设置断点会mysqld会正常启动,如果触发了断点会如下图显示。

整个调试窗口基本分为六部分,所有的调试操作都在这里完成:

1: 显示变量信息

2: 设置重点关注的变量

3: 显示调用栈信息

4: 设置断点信息,在代码行号前也可以设置断点

5: 代码显示区域,上方是调试按钮,包括 continue/stepover/step in/step out/restart/stop

6: 调试终端输入输出区

断点设置

在代码行号前点击即可在该行为设置断点,也可以根据条件设置断点。以设置ConditionalBreakpoint为例,当程序启动后会按照你设置的条件表达式判断是否触发断点。

Conditional Breakpoint这种方式用在目标变量达到某条件时触发断点,其余则跳过继续执行。比如:设置变量等于目标表名时触发断点,其余表则跳过,相对函数名断点省去很多手工跳过操作。

远程调试

假如你想调试远程Linux服务器上的MySQL上面的方法就不合适了,这时需要远程调试。lldb和gdb都支持远程调试,这里以lldb为例。

需要先在远程主机上安装lldb,使用yum安装,源地址在这里

remote$ yum install -y llvm-toolset-7

安装完成后,启动lldb-server

remote$ /opt/rh/llvm-toolset-7/root/usr/bin/lldb-serverplatform --listen "*:9191" --server

接下来,在VS Code调试界面中新增配置项。

{

"type": "lldb",

"request": "attach",

"name": "Remote attach",

"program": "~/mysql5626/usr/local/mysql/bin/mysqld",

"pid":"target_pid",

"initCommands": [

"platform select remote-linux",

"platform connect connect://remote_host:9191"

],

"sourceMap": {

"/export/home/pb2/build/sb_0-15908961-1436910670.17/mysql-5.6.26": "/Users/hongbin/workbench/mysql-server"

}

},

program: 本机也要拷贝一份目标程序,加载

pid: 填写远程主机的mysqld进程id

sourceMap: 填写mysqld编译的代码路径与本机代码库路径的映射,这样调试时代码才可以和程序关联在一起看

注意:记得调试前将代码切换到与目标程序版本一致的branch

如何在windows下编译Chrome源代码

一,编译之前的准备。

1) 了解代码组织结构。

Chrome source非常庞大,并且在其主目录下还包含有工具和组件,任何一个工具和组件也附带有其源代码。首先得熟悉这些源代码的组织结构,在中包含如下子目录:releases,曾经发布过的chrome源代码的正式版本;trunk,当前最新的源代码。由于releases中的代码比较旧,这里就不做说明了,只说明trunk的结构。在trunk下面有3个重要的目录,deps包含了chrome编译和运行所需要的全部组件的代码。src里面包含的则是chrome的主程序的代码,tools包含的是下载和配置编译所需要的第三方工具的压缩包和源代码,其中就有svn和python这2个比较重要的工具,后面再详细介绍。暂时做这样一个简单的介绍,因为其组织结构比较负责,以后再作补充斧正。

2)如何下载和同步源代码。

首先谈谈下载:

1,最简单的方法是从chrome官网上直接下载源代码压缩包,地址是。

2,或者采用svn从这个地方heckout,这要求你先在本地建一个源代码的主目录。

3,另外一个办法则是采用google提供的一个部署工具depot_tools。虽然这几种办法都可下载完整的源代码,但目前的情况是:chrome基于Visual Stdio 2005 进行编译,如果顺利完成编译工作,自然少不了sln文件,较早的源代码中包含有现成的sln和vcproject文件,但后来做了修改,这些文件被抛弃掉,Google自己开发了一种脚本工具叫做GYP,这个工具采用python编写,GYP采用了自定义的一套规则,用于生成各种工程文件。而关键的python则包含于depot_tools中,因此不论采用什么方法下载的代码,都得下载depot_tools这个工具,以获得必须的工程文件。

depot_tools位于 下面,包括一个目录和一个zip格式的压缩包。

3)关于编译器

前面提到Chrome采用Visual Stdio 2005进行编译,根据的说明,需进行如下操作正常编译

a, 安装Visual Studio 2005.

b, 安装Visual Studio 2005 Service Packe 1.

c, 安装Visual Studio Hotfix 947315.

d, 如果是vista系统,还需安装Visual Studio 2005 Service Packe 1 Update for Windows Vista.

e, 安装Windows 2008 SDK,如果是Visual Studio 2008则不需要这一步。

f, 配置Windows 2008 SDK,使2008 SDK成为首选开发库,以获得一些新功能和特性。办法是在开始-程序-Microsoft Windows SDK v6.1 Visual Studio Registration Windows SDK Configuration Tool,选择make current按钮。也可以在VS里面手动配置include和libary路径,效果是一样的。

二,如何配置工程文件

1,如果是采用depot_tools,那么从代码下载到生成sln文件会自动完成。其步骤是

(1)下载depot_tools到本地存储,假设位于d:/depot_tools.

(2)将d:/depot_tools添加到系统环境变量中。

(3)创建一个源代码根目录,假设为 d:/chrome,目录不得包含空格。

(4)在命令行下切换当前目录到d:/chrome。

(5)执行命令 gclient config ,该命令会首先下载svn和python分别到d:/depot_tools/svn_bin和d:/depot_tools/python_bin。

(6)执行命令 gclient sync 这个命令会调用svn同步源代码。这个过程会比较漫长。全部完成之后全部源代码就保存在d:/chrome里面。未编译的代码大约有4个G左右,过程将十分漫长。这样获得的源代码已经包含所有的工程文件,可直接打开。

重点说明一下gclient,它实际上是一个批处理文件,它主要做了如下一些事情,首先设置环境变量,如代码根目录,工具根目录等。其次调用win_tools.bat从服务器下载svn和python。最后调用python.exe对Chrome.gyp进行解析生成所有工程文件。

另外需要说明的是,gclient sync的过程非常漫长,根据命令行的提示来看总共需要同步67个项目(不是工程),期间可能会因为一些原因导致错误而退出这个过程,需要继续调用sync。比如网络出现故障svn会多次进入sleep状态然后重试,如果多次失败就会报错退出,还有的情况是某些子目录的属性问题无法同步,可根据提示进行操作。还有个目前新出现的问题,下面2个目录“src/webkit/data/layout_tests/LayoutTests”和“src/third_party/WebKit/LayoutTests”的源代码是从src.webkit.org签出来的,但是这个网站目前存在问题无法签出代码, 需要屏蔽掉这2个目录,由于里面是测试代码,即使丢弃也不会影响整个工程的编译,方法是打开trunk下面的.gclient文件,向里面添加如下内容

"custom_deps" : {

"src/webkit/data/layout_tests/LayoutTests":None,

"src/third_party/WebKit/LayoutTests":None,

},

这样svn就能完成代码的同步了。最后gclient会调用depot_tools/python_bin/python.exe 对 src/build/gyp_

chromium进行处理,这样就得到了所有的sln和vcproject文件。

2,如果是下载的代码压缩包或者checkout的代码,代码目录里面没有sln文件,这个时候需要调用命令行进入源代码根目录,然后执行命令 gclient runhooks --force,命令执行后会直接对Chrome.gyp进行解析,生成sln文件。

在实际下载过程中,最开始的时候我用TortoiseSVN从 checkout源代码,但是得到的代码只有几百兆,执行gclient runhooks --force命令后也没有找到sln文件,具体原因未知,不建议使用此方式。而直接下载代码压缩包的方式没有尝试过,不知道是否可行。因此最稳妥的方法还是使用depot_tools来部署和处理源代码。

三 编译工程

启动Visual Studio 2005打开 src/chrome/browser/chrome.sln,或者打开src/build/all.sln,如果打开的是chrome.sln里面包含480个工程,而all.sln则包含507个工程,一些09年的编译说明提到有300左右的工程,可见chrome的代码变动比较大。对整个解决方案进行编译,打开需要2个小时才能完成编译,视硬件环境而定,内存越大越快,推荐4G以上内存,酷睿2核或者4核。编译完成以后据说会占用30G的空间。编译后的文件位于 d:/chorme/chrome/debug 目录或者 d:/chorme/chrome/release目录下。

四 chrome涉及的开源项目

Chrome 采用了很多开源项目,这里把它们列出来以备后用,目前Chrome涉及25个开源代码:

1、Google Breakpad

/src/breakpad

开源的跨开台程序崩溃报告系统。

2、Google URL

/src/googleurl

Google小巧的URL解析整理库。

3、Skia

/src/skia

矢量图引擎。

4、Google v8

/src/v8

Google开源的JavaScript引擎。V8实现了ECMA-262第三版的ECMAScript规范,可运行于Windows XP 和 Vista, Mac OS X 10.5 (Leopard), 及 Linux等基于IA-32 或 ARM 的系统之上。V8可单独运行也可嵌入到任何C++程序中。

5、Webkit

/src/webki

开源的浏览器引擎

6、Netscape Portable Runtime (NSPR)

/src/base/third_party/nspr

Netscape Portable Runtime (NSPR) 提供了系统级平台无关的API及类似libc的函数。

7、Network Security Services (NSS)

/src/base/third_party/nss

Network Security Services (NSS) 一套用于支持服务器端与客户端安全开发的跨平台函数库。程序通过NSS可支持SSL v2 and v3, TLS, PKCS #5, PKCS #7, PKCS #11, PKCS #12, S/MIME, X.509 v3 认证及其它一些安全标准。

8、Hunspell

/src/chrome/third_party/hunspell

Spell checker and morphological analyzer library and program designed for languages with rich morphology and complex word compounding or character encoding.

9、Windows Template Library

/src/chrome/third_party/wtl

用于开发Windows程序与UI组件的C++ library。WTL扩展了ATL (Active Template Library) 并提供一套用于controls, dialogs, frame windows, GDI objects等开发的类。

10、Google C++ Testing Framework

/src/testing/gtest

Google用于编写C++测试的基于xUnit架构的框架,可用于多种平台上:Linux, Mac OS X, Windows, Windows CE, and Symbian。支持自动测试发现,有一套丰富的Assertions断言,用于可自定义断言,death tests, fatal and non-fatal failures, various options for running the tests, and XML test report generation.

11、bsdiff 与 bspatch

/src/third_party/bsdiff 及 /src/third_party/bspatch

bsdiff 与 bspatch 用于为二进制文件生成补丁。

12、bzip2

/src/third_party/bzip2

bzip2使用Burrows-Wheeler block sorting text compression 算法与Huffman编码压缩文件。

13、International Components for Unicode (ICU)

/src/third_party/icu38

ICU是一套成熟并被广泛使用的C/C++ 及 Java 库,可为软件提供Unicode与全球化支持。

14、libjpeg

/src/third_party/libjpeg

用于处理JPEG (JFIF)图像格式的库。

15、libpng

/src/third_party/libpng

PNG图像格式库。支持绝大部分的PNG特性,可扩展。已经被广泛地使用了13年以上了。

16、libxml

/src/third_party/libxml

C语言的XML解析库。

17、libxslt

/src/third_party/libxslt

C语言的XSLT库。

18、LZMA

/src/third_party/lzma_sdk

LZMA为7-Zip软件中7z格式压缩所使用的压缩算法,有很好的压缩效果。

19、stringencoders

/src/third_party/modp_b64

一系列高性能的c-string转换函数,比如:base 64 encoding/decoding。通常比其标准实现快两倍以上。

20、Netscape Plugin Application Programming Interface (NPAPI)

/src/third_party/npapi

多种浏览器使用的跨平台插件架构。

21、Pthreads-w32

/src/third_party/pthread

用于编写多线程程序的API

22、SCons - a software construction tool

/src/third_party/scons

开源的软件构建工具——下一代的编译工具。可以认为SCons是改进过的跨平台配上autoconf/automake与ccache的Make工具的子系统。

23、sqlite

/src/third_party/sqlite

大名鼎鼎的嵌入式数据库引擎。自管理、零配置、无需服务器、支持事务。

24、TLS Lite

/src/third_party/tlslite

SSL 3.0, TLS 1.0, and TLS 1.1的Python免费实现库。TLS Lite支持这些安全验证方式:SRP, shared keys, and cryptoIDs in addition to X.509 certificates。注:Chrome并不包涵Python。TLS Lite用于Chrome开发过程中的代码覆盖、依赖检查、网页加载时间测试及生成html结果比较等。

25、zlib

/src/third_party/zlib

zlib为一套用于任意平台与机器的无损数据压缩的库,它免费、自由、无任何法律专利问题。

有人尝试过在windows平台下编译codeblocks源代码吗

编译wxWidgets库的时候,那个老外写的环境变量有问题,至少在我的电脑上出了问题,一直提示“No

such

file

or

directory”(出现这个问题的人貌似还挺多的!!)。

而实际上只要把“%PATH%”加到他环境变量上就可以了。

我的是这样的:

set

path=%PATH%;"C:\Program

Files\CodeBlocks\MinGW\bin";"C:\Program

Files\CodeBlocks\MinGW\mingw32\bin";"C:\Program

Files\CodeBlocks\MinGW\libexec\gcc\mingw32\4.7.1"

(%PATH%

放到后面会不会更好,以减小干扰,还没有尝试)

已经一个小时过去了,wxWidgets库编译正常,撒花!~

发表评论

评论列表

  • 青迟淤浪(2022-06-09 02:24:32)回复取消回复

    s, fatal and non-fatal failures, various options for running the tests, and XML tes

  • 边侣海夕(2022-06-09 03:53:22)回复取消回复

    ,不建议使用系统自带的LLDB,安装前必须先创建证书否则无法安装,步骤如下:创建完成后,开始安装LLVMbrew install llvm --with-python@2 --with-ll