c++ audacity prob

Es gibt 3 Antworten in diesem Thema. Der letzte Beitrag () ist von Gelöschter Benutzer.

    c++ audacity prob

    moin,
    hab ein kleines problem mit audacity beim kompilieren,
    ich hab mir den source + wxwidgets von sourceforge.net geloaded,
    wxwidgets hab ich erfolgreich kompiliert, aber bei audacity hab ich ein problem:
    wie kann ich in C++ ein komplettes verzeichnis includen?
    ohne includen kommt der fehler

    C++ schrieb:

    wx/*****.h no such file or directory

    kann mir da jemand helfen

    lg.
    wurde kein makefile mitgeliefert? Aufjedenfall musst du dem Linker mitteilen das er in dem und dem Ordner nach Include-Datein suchen soll.
    Kommt nun drauf an mit welchem Programm du compilest. Meistens ist das irgendwo in den Einstellungen zu finden.
    ich kompiliere das programm mit vc++ 2008 (was auch unterstützt wird, es ist ne *.vcproj und ne *.sln datei dabei)

    hier mal die compile.txt:
    Compiling Audacity(R) for Microsoft Windows(TM)
    copyright (c) 1999-2009 Audacity Team

    Authors:
    Asger Ottar Alstrup
    Vince Busam
    Dave Fancella
    Vaughan Johnson
    Steve Jolly
    Leland Lucius
    Markus Meyer
    Shane Mueller
    Lynn Allan
    Martyn Shaw

    ========================================================================
    This version is currently accurate for Audacity version 1.3.8.
    If the advice here is inaccurate or incomplete, please
    email audacity-devel@lists.sourceforge.net.
    See also
    "http://audacityteam.org/wiki/index.php?title=Developing_On_Windows".
    ========================================================================

    Audacity releases are now built with Microsoft Visual C++ 9
    (a.k.a Visual C++ 2008) generically known as "VC9".

    For instructions on compiling Audacity under the Cygwin
    UNIX Emulation Layer, see the "Compiling Audacity under
    Cygwin" section below. This is not maintained.

    Note that Audacity uses VC++'s multithreaded DLL runtime libraries.
    If you have MSVC installed, these are in your PATH, but users to
    whom you distribute your builds may not have them, so you may have
    to distribute them, as described for the wxWidgets DLLs, below.


    ---------------------------
    MSVC++ STEP 1: Download wxWidgets
    ---------------------------

    To simplify the implementation of a near-identical user
    interface across platforms, Audacity uses classes and
    resources from wxWidgets, a portable GUI framework for C++
    (and Python). You must download and build wxWidgets before
    attempting to compile Audacity, or nothing will work!

    wxWidgets is available at "http://www.wxwidgets.org/".

    Audacity 1.3.8 requires wxWidgets 2.8.10.

    To build on Windows only, download the wxMSW package
    (installer or zip).

    ------------------------
    MSVC++ STEP 2: Build wxWidgets
    ------------------------

    When you have downloaded and installed wxWidgets, you must
    build it.

    For wxWidgets' instructions on compilation
    (and details about static versus dll linkage), see
    "C:\wxWidgets-2.8.10\docs\msw\install.txt".
    Note therein that wx_dll.dsw adds the dependencies to
    force the correct build order for DLLs, which wx.dsw
    does not. Because of this, wx_dll.dsw doesn't work for
    static libraries.


    1. Open "C:\wxWidgets-2.8.10\build\msw\wx_dll.dsw" with
    Visual Studio 2008 (for VC9).
    Make sure to use wx_dll.dsw, not wx.dsw, because wx.dsw
    does not have the correct dependencies for the DLL builds.
    When you open wx_dll.dsw, Visual Studio will prompt whether
    to convert. Click "Yes To All". Next time you open a Visual
    Studio session, you can avoid this prompt by opening
    "C\wxWidgets-2.8.10\build\msw\wx_dll.sln" instead of wx_dll.dsw.


    2. If you want to use the accessibility features, we have modified a
    couple of the wxWidgets files. Rather than provide a patch, we
    store the modified files in CVS, and you can replace the
    corresponding wxWidgets files.
    In "audacity\win\wxWidgets_additions" are one .cpp and one .h file.
    You may want to make backups of the wxWidgets originals of these,
    in case you also build without these accessibility features.

    * Copy access.cpp to "C:\wxWidgets-2.8.10\src\msw\ole\".

    * Copy setup.h to "C:\wxWidgets-2.8.10\include\wx\msw\".

    Audacity releases are built with these accessibility features.


    3. Build wxWidgets for all configurations of Audacity that you want.
    * Build "DLL Release" to use in a "Release" version of Audacity.
    * Build "DLL Unicode Release" to use in a "Unicode Release"
    version of Audacity.
    * Build "DLL Debug" to use in a "Debug" version of Audacity.
    * Build "DLL Unicode Debug" to use in a "Unicode Debug"
    version of Audacity.

    See "MSVC++ STEP 5: Build Audacity" for the differences
    between these versions of Audacity.

    If you use "Batch Build" under the "Build" menu, you need select
    only the following five projects to build (not the whole solution)
    for each configuration:
    * adv
    * base
    * core
    * html
    * net

    Because of dependencies, this should also build these projects:
    * wxexpat
    * wxjpeg
    * wxpng
    * wxregex
    * wxtiff
    * wxzlib

    If you build the whole solution, ignore the linker errors for
    wxbase28*_odbc*.* dbgrid.


    4. Note the directory "C\wxWidgets-2.8.10\lib\vc_dll". For each
    build of WxWidgets you made, you will need from here five DLLs
    appropriate to that build to go in the corresponding Audacity
    build directory. The DLLs required are noted at "Provide access
    to the wxWidgets DLLs" at "MSVC++ STEP 5: Build Audacity" below.


    --------------------------
    MSVC++ STEP 3: Download Audacity
    --------------------------

    Now you can compile Audacity. To check out the latest
    source code from CVS, see the instructions at
    "http://audacity.sourceforge.net/community/developers".


    --------------------------------------------
    MSVC++ STEP 4: Set wxWidgets location for Audacity
    --------------------------------------------

    Before you can start the build process, you must update the
    project settings to tell Visual C++ where to find wxWidgets.
    There are three settings that need changing:
    1. Include Directory (e.g., "C:\wxWidgets-2.8.10\include")
    2. Resource Directory (e.g., "C:\wxWidgets-2.8.10\include")
    3. Library Directory (e.g., "C:\wxWidgets-2.8.10\lib")

    Fortunately, this is parameterized, using a Windows system
    environment variable. There are various ways to set these, so
    look in the Windows help system. You want to create an
    environment variable WXWIN, set to the top-level directory
    where you installed wxWidgets. For example,
    in your "autoexec.bat" file, you might have a line:

    set WXWIN=C:\wxWidgets-2.8.10

    Note that you don't want a trailing backslash on that.

    On newer version of Windows, the settings for environment
    variables can be found in the system control panel. Click
    the "System" option, then the "Extended" or "Advanced" tab,
    then "Environment variables".

    In the Audacity project file, there are declarations like

    $(WXWIN)\include

    that get interpreted as, e.g., "C:\wxWidgets-2.8.10\include".

    Once you have set the WXWIN environment variable correctly,
    the Audacity project file's declarations will do the rest.

    Note that you have to restart the IDE so it picks up changes
    in the environment variables.


    -----------------------
    MSVC++ STEP 5: Build Audacity
    -----------------------

    Run Visual C++ and load the Audacity solution,
    "audacity\win\audacity.sln".


    Optional Features

    Local help (optional, but required for a full 'release ready' version).
    Build the 'help' project. This will download a copy of the manual wiki
    onto your machine and copy it to the correct place for the build that
    you are doing. If the local copy needs updating at any time, run
    audacity\scripts\mw2html_audacity\wiki2htm.bat and re-run the 'help' project.

    Some functionality in Audacity is currently turned on its default
    configuration, but requires that extra libraries be downloaded
    separately to use it.

    * To allow export of MP3 files, download LAME:
    audacity.sourceforge.net/help/faq?s=install&i=lame-mp3

    * To allow import and export of a much wider range of audio formats
    (including WMA, M4A and AC3), and to import audio from video files,
    download FFmpeg:
    audacityteam.org/manual/index.…nd_Plug-Ins#installffmpeg

    To change the libraries that are enabled in Audacity, open the file
    "win\configwin.h" and comment or uncomment the libraries as required.

    DirectSound (Microsoft) and ASIO (Steinberg) are sound card interface
    protocols that are more efficient than the standard WMME. Unlike WMME,
    not all sound card drivers support them.

    TO ADD SUPPORT FOR DIRECTSOUND:
    Install the DirectX SDK from Microsoft (msdn.microsoft.com/directx).
    The installation will automatically define the DXSDK_DIR
    environment variable and its presense will cause DirectSound
    support to be automatically included when Audacity is built.


    TO ADD SUPPORT FOR ASIO:
    Because ASIO is a PROPRIETARY, closed standard,
    we (or any third party) cannot distribute its SDK.
    That means we cannot distribute builds of Audacity that support
    ASIO, because Audacity is licensed under the
    GPL (audacity.sourceforge.net/about/license), which requires
    we distribute all source code.

    So, although you can build your own copies of Audacity with
    ASIO support, for personal use, you cannot distribute them without
    violating the Audacity license and the ASIO license.
    If you build ASIO support into Audacity, do not distribute that build.

    If you wish ASIO support, install the ASIO SDK from Steinberg
    (steinberg.net ... select Company, then 3rd Party
    Developers), then define an environment variable called
    ASIOSDK_DIR, as you did for WXWIN, above. The value should be
    the full path to the base directory of the ASIO SDK, e.g.,

    set ASIOSDK_DIR=C:\ASIOSDK2

    Build Audacity

    Select the configuration that you wish to build:
    * "Release" for general use
    * "Unicode Release" for Unicode-based, general use
    * "Debug" for a slower but debuggable executable
    * "Unicode Debug" for a Unicode-based, slower, debuggable
    executable

    You can select the configuration from the Solution
    Configurations pull-down menu, or select it from the "Build"
    menu > "Configuration Manager..." dialog box.

    Build Audacity by giving the "Build" menu > "Rebuild Solution"
    command.


    Provide access to the wxWidgets DLLs

    Each Audacity executable needs access to five specific wxWidgets
    DLLs from those you built in "MSVC++ STEP 2: Build wxWidgets"
    above. You can copy them to your Windows PATH, or more simply,
    to the same directory as the executable. If you are building
    Audacity for public release using the *.iss installer script,
    you must copy them to the executable directory. The DLLs required
    are at "C:\wxWidgets-2.8.10\lib\vc_dll":

    wxbase28*_net_vc_custom.dll
    wxbase28*_vc_custom.dll
    wxmsw28*_adv_vc_custom.dll
    wxmsw28*_core_vc_custom.dll
    wxmsw28*_html_vc_custom.dll

    The "*" in the file names above is replaced in the actual files by
    a suffix specific to its Widgets configuration. You can identify the
    DLLs needed for each Audacity version as follows:

    "" (no suffix) for "Release" versions
    "u" for "Unicode Release" versions
    "d" for "Debug" versions
    "ud" for "Unicode Debug" versions

    So for instance, a Unicode Debug version of Audacity should have:

    wxbase28ud_net_vc_custom.dll
    wxbase28ud_vc_custom.dll
    wxmsw28ud_adv_vc_custom.dll
    wxmsw28ud_core_vc_custom.dll
    wxmsw28ud_html_vc_custom.dll

    in the "audacity\win\unicode debug" directory.


    That's all - if this procedure doesn't work, you can ask for
    help on the Audacity development mailing list:
    audacity-devel@lists.sourceforge.net. However, the first
    suggestion is likely to be "try it again with a clean installation
    of the wxWidgets source and the latest Audacity source from CVS",
    so if that's not what you just attempted, you might want to try
    that first...


    ---------------------------
    HELP! I get linker errors!
    ---------------------------

    In some cases, Audacity does compile, but during the linking
    process you get a bunch of error messages like this:

    LIBCMTD.lib(LIBCMTD.dll) : error LNK2005: _free
    already defined in MSVCRTD.lib(dbgheap.obj)

    This is usually caused by conflicting runtime library settings.
    Audacity is now linked with DLL linkage.
    In VC9, select the Audacity project. Then
    Project > Properties > C/C++ > Code Generation > Runtime Library
    should be
    "Multi-threaded Debug DLL (/MDd)" for Debug or Unicode Debug builds,
    or
    "Multi-threaded DLL (/MD)" for Release or Unicode Release builds.
    Make sure you set the correct library type for all corresponding build
    configurations.
    Also make sure you check all other libraries, like the Ogg Vorbis
    libraries, if you have them installed.

    You may want to use the /VERBOSE:LIB linker parameter to
    get information about which library is causing the conflict.

    If all else fails, use the following procedure to force
    Audacity to link to the correct library:

    Select the Audacity project in Solution Explorer.
    Then choose Project > Properties.

    Select the desired configuration (e.g., "Debug" or "Release").
    Select the "Linker" folder in the tree on the left, and the
    "Input" item. In the "Ignore Specific Library" field, enter
    "msvcrt.lib" if you were attempting to perform a
    Release build, or "msvcrtd.lib" for a Debug build.

    On some systems, you will need to ignore "libcmt.lib"
    or "libcmtd.lib" instead of "msvcrt.lib" or "msvcrtd.lib",
    depending on the library which actually causes the conflict.

    Note that if you have configured all libraries correctly,
    none of the above should actually be necessary.