我需要在Ubuntu 12.04.5 LTS上使用Eclipse和CDT编译PortAudio&#39的 paex_record_file.c 文件。
通过Synaptic安装了Dev libraries(libportaudio-dev)。 我创建了新的Eclipse项目并创建(复制)此 only 文件(因此项目只包含一个用户源文件' paex_record_file.c',1752 2011-09-08 03: 21时55分)。
然后我使用Eclipse的Pkg-config添加' portaudio' (开发)图书馆。 但它没有编译错误
../src/paex_record_file-test.c:47:27: fatal error: pa_ringbuffer.h: No such file or directory
然后从git
取得源分支$ git clone https://git.assembla.com/portaudio.git
./configure
make
sudo male install
但仍然得到同样的错误(没有' pa_ringbuffer.h')。
然后在盲目试验和错误期间我使用Project - Properties - C build - Settings - Tool settings - Includes,并添加' / home / test / portaudio / src / common'包含所需.h文件的路径,并且(此)错误消失。
问题1 :在这种情况下,此步骤是否正确使用Eclipse设置? (我不相信,因为我以前从不需要使用此设置。)
但是它显示了多个错误,如
/home/doc/prog/paex_record_file-test/Debug/../src/paex_record_file-test.c:110: undefined reference to `PaUtil_GetRingBufferReadAvailable'
这是不可恢复的。
问题2。如何使用Eclipse修复它,但不将所有Portaudio源代码树复制到我的项目中?
我在系统的某个地方有 pa_ringbuffer.o 文件,但没有像pa_ringbuffer.so这样的文件。 我已经在Eclipse下编译并运行其他PA应用程序,这些应用程序不使用PA的环形缓冲区,只是
#include "portaudio.h"
通过PkgConfig添加PA lib就足够了。 感谢。
答案 0 :(得分:1)
我必须将这3个文件添加到源代码以及main.c,然后编译。 我使用Code Block,Mingw c编译器
/portaudio/src/common/pa_allocation.c
/portaudio/src/common/pa_ringbuffer.c
/portaudio/src/os/win/pa_win_util.c
答案 1 :(得分:0)
请查看portaudio.git:
cd portaudio/
find . -name pa_ringbuffer.h
The reply is : ./src/common/pa_ringbuffer.h
...所以你必须将标题复制到可以找到它的位置。 但是:不要期望编译单个文件→通常无法使用复杂的应用程序。即该设置用于编译完整的portaudio /。