进行KIACD开发的第一步编译KICAD

这篇博客详细介绍了在Windows和Linux环境下编译开源电子设计自动化软件KICAD的步骤。从安装必要的工具,如msys和mingw,到配置和编译wxWidgets、zlib、CMAKE等依赖库,再到使用CMAKE创建和构建KICAD的makefiles,最后通过make命令完成编译和安装。文章特别强调了在编译过程中遇到的问题和解决方法,适合想要深入了解KICAD开发或自定义构建的读者。
部署运行你感兴趣的模型镜像

如果你还不清楚什么是KICAD,那还是先google一下去吧,研究了好久都没有成功,原因主要是没有从事过这么复杂的编译(以前用vs 的用习惯了),

其实熟悉linux 的用户早就应该知道一个密密那就是 如何安装都在源码包里面的,如:KICAD它的编译方法也不外外:

 

--== How to build kicad using CMAKE ==--
First Written: 19-Dec-2007
Last Revised: 12-Mar-2008


Kicad needs wxWidgets, the multi platform G.U.I.

Perform these steps in sequence. (Platform specific details are given in
sections below.)


1)  If windows, then install "msys" and "mingw".
2)  If linux, then install "mesa".
3)  Make sure g++ and "make" are in your path.
4)  Install wxWidgets [and build it if on windows].
5)  Install zlib [and build it if on windows].
6)  Install CMAKE
7)  Install Boost C++ Template Libraries (*.hpp files)
8)  Install the kicad source tree.
9)  Use cmake to build the kicad makefiles.
10) Use make to build and install kicad.
11) Making a "Debug" build.
12) Variables for fine-tuning the build process.


===== Step Details ====================================================

1)  If windows, then install "msys" and "mingw".
Skip this step if on a Unix box.  Get msys and mingw here:
http://mingw.org/
msys sets up a development environment that allows the bash shell to run.
mingw are a set of tools that run on windows or under msys.  You will need
at least the following mingw packages: make, gcc, g++, binutils, autoconf, and
automake.

-----------------------------------------------------------------------------

2)  If linux, install "mesa".  Use your package manager to install the development
libaries.

-----------------------------------------------------------------------------

3)  Make sure g++ and "make" are in your path.
If windows, then try running g++ and make from within your msys bash shell.

-----------------------------------------------------------------------------

4)  Install wxWidgets [and build it if on windows].
If on windows, download
http://prdownloads.sourceforge.net/wxwindows/wxMSW-2.8.8.zip or a newer version.
Start msys so you have a bash shell.  Decide where your wxWidgets build directory
will be.  It must be where you can access it from within the msys environment,
such as home/<user>.   Edit your msys/1.0/etc/fstab file if needed to provide
access to this build directory from msys.  (Note that if you want you can build
a "debug" version of the wxWidgets library at this point, instead of the release
version, or in addition to the the release version.)
Unzip the wmMWS zip file into the build directory.  Change directories into there,
and then:

    mkdir build-release
    mkdir build-debug

-- release
    cd build-release
    ../configure --enable-unicode --enable-monolithic --disable-shared --with-msw --with-opengl
    make
    make install

-- debug
    cd build-debug
    ../configure --enable-unicode --enable-monolithic --enable-debug --enable-debug_gdb --disable-shared --with-msw --with-opengl
    make
    make install

I think the default is to install into /usr/local/wxMSW-2.8.8.  You can probably
pass --prefix=<wxInstallDir> to configure above to change where "make install"
puts everything.  We will refer to <wxInstallDir> again below.  Without the
--prefix=<wxInstallDir> passed to configure, <wxInstallDir> will likely be
    /usr/local/wxMSW-2.8.8

Verify that wx-config is in your path.  Modify your PATH environment variable
if need be so you can run wx-config from a command prompt.  You may have to
restart your msys shell, depending on how you modify your PATH.


If on linux, use your package manager to install shared object libraries and the
development versions of the wxWidgets packages which include the C++ headers. An
alternative is to build static libaries from source. Verify that wx-config is in
your path by running it from a command prompt. Linux users then go to next step.

-----------------------------------------------------------------------------

5)  Install zlib [and build it if on windows].
If on windows, download http://www.zlib.net/zlib123.zip or a newer version.
Start msys so you have a bash shell. Decide where your zlib build directory
will be. It must be where you can access it from within the msys environment,
such as home/<user>. Edit your msys/1.0/etc/fstab file if needed to provide
access to this build directory from msys. Unzip the zlib123.zip file into this
build directory. Change directories into there, and then:
    ./configure
    make
    make install


If linux, use your package manager to install zlib pre-built binaries.

Note (JP Charras):
 Under Linux, zlib is usually installed.
 if not found by wxWidget installation, wxWidgets creates an alternate zlib
 Under Windows, zlib is not installed, so my cmake buld try to use the wxWidgets zlib build.
 So, under windows kicad build should work without zlib install.

-----------------------------------------------------------------------------

6)  Install CMAKE.
If windows, download the installation binary for windows from cmake.org.
Install that and choose to add cmake to your path during installation.  You
will have to restart and command shells for the new path to take effect.
Verify that cmake is in your path by trying to run it from a command prompt.


If linux, use your package manager to install cmake. You should get cmake 2.4.7
or later. If only an older one is available in your package repository, build
2.4.7 from source. Verify that cmake is in your path by trying to run it from a
command prompt.

-----------------------------------------------------------------------------

7)  Install Boost C++ Libraries
If windows, well I'm guessing, so somebody please try these two options and
correct this text please according to which ever is easier:
(optionA) Go to http://sourceforge.net/project/showfiles.php?group_id=7586
and download boost_1_34_1.zip or later and unzip it so as to put the files
into C:/Program Files/boost/boost_1_34_1
(optionB)
Go to http://www.boost-consulting.com/products/free
and download the http://www.boost-consulting.com/boost_1_34_1_setup.exe
file and run it.

If linux, and using a GCC earlier than 4.2, then install the
"Boost C++ Libraries development files" or similarly named package using your
package manager. Note that if you are using gcc 4.2 or later, there were
incompatibilities that exist between boost 1.34.1 and gcc 4.2. So in this case,
instead of installing boost using your package manager, you should use the svn
HEAD copy which overcomes the gcc 4.2 incompatibility, specifically with
<boost/ptr_container/ptr_vector.hpp>.

-----------------------------------------------------------------------------

8)  Install the kicad source tree.
You can use the subversion repository or a tar file for this.  See the wiki.

-----------------------------------------------------------------------------

9)  Use cmake to create the kicad makefiles.
If windows, go into your msys shell.  Linux and windows users both then make
two "out of source" build directories:
    cd <kicadSource>
    mkdir -p build/release
    mkdir build/debug
    cd build/release

On either cmake command line shown below, you can optionally include
    -DCMAKE_INSTALL_PREFIX=<finallInstallDir>

If windows, run the following command:
    cmake -G "MSYS Makefiles" -DCMAKE_BUILD_TYPE=Release -DwxWidgets_ROOT_DIR=<wxInstallDir> ../../

If linux, run instead the following command:
    cmake -DCMAKE_BUILD_TYPE=Release ../../

Take a look at CMakeCache.txt, and in particular CMAKE_INSTALL_PREFIX, which
gives the final install directory. If not what you want, edit it with a text
editor and re-run the same cmake command again, but with no
-DCMAKE_INSTALL_PREFIX given on the command line.

CMake will try and find the boost header files and will often fail.  If it
fails, you will have to edit your CMakeCache.txt file manually and set your
Boost_INCLUDE_DIR:PATH=/svn/boost-trunk
setting to point to the base of the boost installation directory.  Account
for the fact that the boost #include references use a <boost/..> type prefix.
Example C++ code:  #include <boost/ptr_container/ptr_vector.hpp> and please
notice the leading <boost/ in the path.
So point your Boost_INCLUDE_DIR:PATH= variable to a directory above the
"boost" directory.

-----------------------------------------------------------------------------

10)  Use make to build and install kicad.
You compile Kicad here.  You will only need to do step 8) again when one of the
CMakeLists.txt files change.  If windows, you must be in your msys shell.
On either platform then:
    cd <kicadSource>/build/release
    make
    [sudo] make install

You are now done unless you want to make a Debug build.

-----------------------------------------------------------------------------

11) Making a "Debug" build.

    cd <kicadSource>/build/debug

On either cmake command line shown below, you can optionally include
-DCMAKE_INSTALL_PREFIX=<finallInstallDir> before the final ../../ argument. Although
normally you do not install the Debug binaries, you can debug them where they
were built.

If windows, run the following command:
    cmake -G "MSYS Makefiles" -DCMAKE_BUILD_TYPE=Debug -DwxWidgets_USE_DEBUG=ON -DwxWidgets_ROOT_DIR=<wxInstallDir> ../../

If linux, run instead the following command:
    cmake -DCMAKE_BUILD_TYPE=Debug -DwxWidgets_USE_DEBUG=ON ../../

Make the Debug binaries:
    make

-----------------------------------------------------------------------------

12) Variables for fine-tuning the build process.

These should be set from command line:

 CMAKE_BUILD_TYPE Release/Debug (REQUIRED)
   Choose build type: Release/Debug.

 wxWidgets_USE_DEBUG ON/OFF (REQUIRED)
   Should be set to ON only when CMAKE_BUILD_TYPE=Debug.

 wxWidgets_USE_STATIC ON/OFF (OPTIONAL)


 CMAKE_VERBOSE_MAKEFILE ON/OFF (OPTIONAL)
   Turns ON/OFF verbose build messages.
   You can also pass VERBOSE=1 to make for the same effect.

 CMAKE_INSTALL_PREFIX (OPTIONAL)


 KICAD_MINIZIP ON/OFF


 KICAD_PYTHON ON/OFF


-----------------------------------------------------------------------------

Note: that it is easy to build only a specific binary such as pcbnew alone:
    make pcbnew

-----------------------------------------------------------------------------

End of CMAKE related building.


============= OLD STUFF NOT PERTINENT TO CMAKE ==============================

unzip sources in a working directory.
This will create the directory "kicad-dev".

First you must install wxWidgets (see www.wxWidgets.org)
See below for suggested configure command.

Linux compilation:
You must have:
wxWidgets ( I suggest you install wxWidgets in /usr/local).
(see below for suggested configure command, then make and make install)

Mesa: pcbnew and cvpcv need openGL or mesa.
(you must install mesa devel if libGL et libGLU are not found).
GTK 2 (install development libraries).

Because old version of Mesa has problem under a recent linux distrib (mandarke 10.1),
I am using Mesa version 6.2.1, statically compiled, installed in /usr/local
Mesa installation:
Get MesaLib-6.2.1.tar.gz from http://www.mesa3d.org/
in /usr/local : tar zxvf MesaLib-6.2.1.tar.gz
in /usr/local/Mesa-6.2.1 :
make linux-x86-static
make install ( libGL.a et libGLU.a are copied in /usr/local/lib, and header in /usr/local/include)

kicad compilation:
in kicad-dev:
 Have a look to libs.linux (you can/must edit this file if you have problems)
 Currently libs.linux uses wxWidgets 2.8.6 build (see below for suggested configure command)
 lines to edit:
 STD_INSTALL = 1
 which can be (see comments in libs.linux)
 STD_INSTALL = 0 (or 2)

 after libs.linux edition:
 run make -f makefile.gtk

Windows compilation:

kicad is build with mingw and msys.
Currently libs.win uses wxWidgets 2.8.6 (see below for suggested configure command)

install mingw  and msys ( see mingw.org )
(opengl libs are included in mingw or windows)

Under msys:
    (Warning: make.exe utility is sometime renamed mingw32-make.exe in install process
    of msys.)

Build wxWidgets (currently version 2.8.6)
    See below for suggested configure command, then make

    In include/wx/msw/setup.h, check (and edit if needed) the defines :
    #define wxUSE_GLCANVAS       1
    #define wxUSE_MOUSEWHEEL  1 // Include mouse wheel support
    #define wxUSE_HOTKEY 0      // Hotkey support (currently Windows only)


Exit msys.
Set environment variable WXWIN ( something as wxwin=/d/wxWidgets-2.8.6
for a wxWidget installed in d:/wxWidgets-2.8.6)

Have a look to libs.win (Currently this file handle wxWidgets 2.8.6)

Under msys:
    in kicad-dev:
    run make -f makefile.g95

*************************************************************************************
Building wxWidgets:
*************************************************************************************
linux:
 rm *.cache
 ./configure --enable-monolithic --enable-unicode=no --enable-shared=no --with-opengl --with-libpng=builtin --with-libjpeg=builtin --with-libtiff=builtin --with-zlib=builtin --with-regex=builtin

linux-unicode:
 rm *.cache
 ./configure --enable-monolithic --enable-unicode=yes --enable-shared=no --with-opengl --with-libpng=builtin --with-libjpeg=builtin --with-libtiff=builtin --with-zlib=builtin --with-regex=builtin

osX:
 rm *.cache
 ./configure --enable-unicode=yes --enable-shared=no --enable-monolithic --with-opengl --disable-universal --disable-compat24

osX-unicode:
 rm *.cache
 ./configure --enable-unicode=yes --enable-shared=no --enable-monolithic --with-opengl --enable-universal_binary

windows:
 rm *.cache
 ./configure --enable-unicode=no --enable-shared=no --enable-monolithic --with-msw --with-opengl  --with-odbc

windows-unicode:
 rm *.cache
 ./configure --enable-unicode=yes --enable-shared=no --enable-monolithic --with-msw --with-opengl

*************************************************************************************
Patch wxWidgets
*************************************************************************************
*************************************************************************************
wxGTK version:
*************************************************************************************
Patch for printing wide traces that were showing missing rounded end caps:
wxGTK-2.8.6/src/generic/dcpsg.cpp
line 1634
    PsPrint( "%%EndProlog/n" );

must be
    PsPrint( "%%EndProlog/n" );
    PsPrint("%%BeginSetup/n");
    PsPrint( "1 setlinecap/n" );
    PsPrint("%%EndSetup/n");


patch for Arcs drawings (NOT NEEDED for wxWidgets 2.7.1, needed for versions prior to 2.7.1)
wxGTK-2.x.y/src/gtk/dcclient.cpp
in function WindowDC::DoDrawArc
line 572 for wxWidgets 2.7.0-1:
        if (m_pen.GetStyle() != wxTRANSPARENT)
        {
            gdk_draw_arc( m_window, m_penGC, FALSE, xxc-r, yyc-r, 2*r,2*r, alpha1, alpha2 );

            gdk_draw_line( m_window, m_penGC, xx1, yy1, xxc, yyc );
            gdk_draw_line( m_window, m_penGC, xxc, yyc, xx2, yy2 );
        }
must be
        if (m_pen.GetStyle() != wxTRANSPARENT)
        {
            gdk_draw_arc( m_window, m_penGC, FALSE, xxc-r, yyc-r, 2*r,2*r, alpha1, alpha2 );

            if (m_brush.GetStyle() != wxTRANSPARENT)
            {
                gdk_draw_line( m_window, m_penGC, xx1, yy1, xxc, yyc );
                gdk_draw_line( m_window, m_penGC, xxc, yyc, xx2, yy2 );
            }
        }


*************************************************************************************
wxMSW version: for wxWMSW 2.8.1 only
*************************************************************************************

wxMSW.2.8.1/src/msw/menu.cpp
line 410
    if ( !pItem->IsOwnerDrawn()  )
must be
    if ( !pItem->IsOwnerDrawn() && !pItem->IsSeparator() )

 

过程明白,不懂英文的慢慢读吧,其它最后的几步我也没有明白呢,不过编译过程序中郁到一个问题让我郁闷了很久,

[@msys build-debug]$ make
/c/wx/build-debug/bk-deps gcc -c -o wxregex_regcomp.o -D__WXMSW__   -D__WXDEBUG__ -I/c/wx/build-debug/lib/wx/include/msw-unicode-debug-static-2.8 -I../include -mthreads -Wall -Wundef -ggdb -O0 -mthreads ../src/regex/regcomp.c
process_begin: CreateProcess(NULL, /c/wx/build-debug/bk-deps gcc -c -o wxregex_regcomp.o -D__WXMSW__ -D__WXDEBUG__ -I/c/wx/build-debug/lib/wx/include/msw-unicode-debug-static-2.8 -I../include -mthreads -Wall -Wundef -ggdb -O0 -mthreads ../src/regex/regcomp.c, …) failed.
make (e=3): 系统找不到指定的路径。
make: *** [wxregex_regcomp.o] Error 3

 

 

中文的网站上好像没有找到什么信息,直到在英文网站才发现了,好像是说mingw中的一个bug引起了,郁闷了不?快点重装吧,果然没有问题了,

 

 

 

您可能感兴趣的与本文相关的镜像

TensorFlow-v2.9

TensorFlow-v2.9

TensorFlow

TensorFlow 是由Google Brain 团队开发的开源机器学习框架,广泛应用于深度学习研究和生产环境。 它提供了一个灵活的平台,用于构建和训练各种机器学习模型

评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值