chrome源代码学习的路径

编译:

对于ubuntu需要

sudo apt-get install bison fakeroot flex g++ g++-multilib gperf \
  libapache2-mod-php5 libasound2-dev libbz2-dev libcairo2-dev \
  libdbus-glib-1-dev libgconf2-dev libgl1-mesa-dev libglu1-mesa-dev \
  libglib2.0-dev libgtk2.0-dev libjpeg62-dev libnspr4-dev libnss3-dev \
  libpam0g-dev libsqlite3-dev libxslt1-dev libxss-dev \
  mesa-common-dev msttcorefonts patch perl pkg-config python \
  python2.5-dev rpm subversion libcupsys2-dev libgnome-keyring-dev \
  libcurl4-gnutls-dev libelf-dev libc6-i386 lib32stdc++6

build/gyp_chromium -Ddisable_nacl=1

如果不disable_nacl时,编译nacl会出错

make chrome

make -j16 DumpRenderTree from http://www.chromium.org/developers/testing/webkit-layout-tests

make test_shell 编译test_shell

如果是ubuntu 11.10编译时出现variable ‘msg_is_ok__’ set but not used [-Werror=unused-but-set-variable]错误,可以设置环境变量,使编译器忽略warning作为error,命令如下:export GYP_DEFINES="werror=''"

相关讨论:file:///home/zhanggang/Desktop/Issue%2080071%20-%20chromium%20-%20No%20compile%20on%20gcc-4.6%20-%20An%20open-source%20browser%20project%20to%20help%20move%20the%20web%20forward.%20-%20Google%20Project%20Hosting.html

另外,编译时如果出现链接时内存超出限制,可以参考http://code.google.com/p/chromium/wiki/LinuxFasterBuilds设置export CC="gcc -B/usr/local/gold/bin" 

上面的编译会生成一个静态库的程序,如果要编译成动态库,在生成makefile是要采用下面的命令:

 ./build/gyp_chromium -D component=shared_library -D disable_nacl=1 

资源:

  • http://www.chromium.org/developers  chromium for developer的hub页面,很多重要的信息都可以从这个页面中找到
  • http://www.chromium.org/developers/how-tos/get-the-code 该页面告诉你如何获取chromium的代码,基本步骤就是:            
          1)下载tar包;

          2)check out "gclient";

          3)使用gclient更新代码

          4)如果在更新代码是出现类似>svn: UUID mismatch: pymox的错误,可以把tar包中的pymox删除,在运行更新命令 

  • http://www.chromium.org/developers/how-tos/getting-around-the-chrome-source-code  从比较高的层面介绍了源代码中各个目录的内容
  • http://www.chromium.org/developers/design-documents 从工程角度对chrome设计的更加详细的文档

  • http://mogoweb.net/archives/144 关于test_shell
  • http://mogoweb.net/archives/152   gyp(generate your project)

WebKit部分

 1、webkit编程中指针使用规范:http://www.webkit.org/coding/RefPtr.html

这是一个很有价值的文章,读懂了它就了解了webkit中对象的创建,指针的传递,函数返回值为指针时如何返回,以及引用计数指针与raw指针相互转化等问题。一般webkit中将类的构造函数设置为private,通过create创建对象,返回RefPtr的对象指针,防止内存泄露。



你可能感兴趣的:(python,ubuntu,chrome,webkit,subversion,makefile)