59 | | '''Update:''' (2009/01/02):: |
60 | | We have tested Intel IPP '''version 6.x''' on Windows/Visual Studio and found the following results: |
61 | | - the build and integration instructions on this page still apply for version 6.0, with the minor exceptiond: |
62 | | - the '''{{{bin}}}''' folder of the {{{speech-codec}}} samples has been renamed to '''{{{_bin}}}'''. |
63 | | - the '''{{{usc.lib}}}''' file has been renamed to '''{{{speech.lib}}}'''. Support for this has been added on PJSIP version 1.0.3 (or revision r2412 or later). |
64 | | - there are '''link errors''' when building the application using '''statically linked CRT''' ({{{/MT[d]}}} compiler option), something like the following: |
65 | | {{{ |
66 | | msvcrt.lib(ti_inst.obj) : error LNK2005: "private: |
67 | | __thiscall type_info::type_info(class type_info const &)" |
68 | | (??0type_info@@AAE@ABV0@@Z) already defined in LIBCMTD.lib(typinfo.obj) |
69 | | |
70 | | msvcrt.lib(ti_inst.obj) : error LNK2005: "private: class type_info |
71 | | & __thiscall type_info::operator=(class type_info const &)" |
72 | | (??4type_info@@AAEAAV0@ABV0@@Z) already defined in LIBCMTD.lib(typinfo.obj)'' |
73 | | }}} |
74 | | This is caused by that IPP samples is by default built using '''dynamically linked CRT''' ({{{/MD}}} compiler option). A simple way to solve this is by modifying the {{{makefile}}} of {{{speech-codec}}} samples, for example by inserting the following line to {{{ipp-samples\speech-codecs\Makefile}}} line 46: |
75 | | {{{ |
76 | | M_FLAG = /Zl ## omitting the default C runtime library name |
77 | | }}} |
78 | | IPP samples application ({{{*.exe}}}) may not build successfully, however {{{speech.lib}}} will be built successfully and linkable with any CRT linkage types. |
79 | | |
80 | | '''Update:''' (2009/01/14):: |
81 | | Michael Toop has tested Intel IPP '''version 6.0 Update 1''' on Ubuntu Linux 8.04, and posted [http://lists.pjsip.org/pipermail/pjsip_lists.pjsip.org/2009-January/005836.html detail instructions] on how to fix PJSIP to use IPP v.60. |
82 | | |
107 | | - Typically the build process will involve just setting the IPPROOT envirunment variable and execute the {{{buildxx.bat}}} batch file. |
108 | | |
109 | | Once the build process done, you should have '''{{{usc.lib}}}''' file in a directory inside {{{speech-codecs\bin}}} directory (in my case, it's in {{{C:\ipp-samples\speech-codecs\bin\win32_cl9\lib}}} folder). The directory name corresponds to the platform where the samples are built for. (Note: for IPP version 6, the {{{bin}}} folder has been renamed to {{{_bin}}}). |
| 83 | - typically the build process will involve just setting the IPPROOT environment variable and execute one of the {{{build*.bat}}} batch file. |
| 84 | |
| 85 | The build process produces the following: |
| 86 | - (for IPP v5.3) '''{{{usc.lib}}}''' file somewhere under {{{speech-codecs\bin}}} directory, e.g. {{{ipp-samples\speech-codecs\bin\win32_cl9\lib}}} directory. |
| 87 | - (for IPP v6.x) '''{{{speech.lib}}}''' file somewhere under {{{speech-codecs\_bin}}} directory, e.g. {{{ipp-samples\speech-codecs\_bin\win32_cl9\lib}}} directory. |
| 107 | |
| 108 | ==== Issues with building statically linked application ==== |
| 109 | |
| 110 | There are '''link errors''' when building the application using '''statically linked CRT''' ({{{/MT[d]}}} compiler option), something like the following: |
| 111 | {{{ |
| 112 | msvcrt.lib(ti_inst.obj) : error LNK2005: "private: |
| 113 | __thiscall type_info::type_info(class type_info const &)" |
| 114 | (??0type_info@@AAE@ABV0@@Z) already defined in LIBCMTD.lib(typinfo.obj) |
| 115 | |
| 116 | msvcrt.lib(ti_inst.obj) : error LNK2005: "private: class type_info |
| 117 | & __thiscall type_info::operator=(class type_info const &)" |
| 118 | (??4type_info@@AAEAAV0@ABV0@@Z) already defined in LIBCMTD.lib(typinfo.obj)'' |
| 119 | }}} |
| 120 | |
| 121 | This is caused by that IPP samples is by default built using '''dynamically linked CRT''' ({{{/MD}}} compiler option). A simple way to solve this is by modifying the {{{makefile}}} of {{{speech-codec}}} samples, for example by inserting the following line to {{{ipp-samples\speech-codecs\Makefile}}} line 46: |
| 122 | |
| 123 | {{{ |
| 124 | M_FLAG = /Zl ## omitting the default C runtime library name |
| 125 | }}} |
| 126 | |
| 127 | IPP samples application ({{{*.exe}}}) may not build successfully, however {{{speech.lib}}} will be built successfully and linkable with any CRT linkage types. |