打印

qt怎样检查alsa库是否存在?

qt怎样检查alsa库是否存在?

比如如果系统有alsa库,就编译含alsa的代码,否则编译含oss的代码。c文件中可以设成
#if ALSA
...
#else
...
#end

项目文件*.pro该怎样设置?

TOP

这个一般是在configure脚本里做的,configure后生成config.h,config.h来定义系统包含了那些模块
如果configure检查发现有alsa库,就在config.h里加上#define ALSA,C源码里#include "config.h"就行了

configure检查的方法一般是写一段简短的使用该模块功能的代码,并编译、运行,如果没有错误就认为该模块存在。

TOP

参考qmake教程,我找到一个解决办法,虽然不是特别完善:
ALIB=$$system(ls /usr/lib|grep libasound)
contains(ALIB,libasound.so){
  LIBS+=-lasound
  DEFINES+=ALSA
}

版主可否提供一个configure中检查alsa库的代码?我打算将该代码修改后放到qt的pro项目文件中,以替换上面的代码。

TOP

qmake有自己的方式
configure是autoconf/automake里面的

TOP