设为首页
收藏本站
用户名
Email
自动登录
找回密码
密码
登录
注册
快捷导航
平台
Portal
论坛
BBS
文库
项目
群组
Group
我的博客
Space
搜索
搜索
热搜:
shell
linux
mysql
本版
用户
LinuxSir.cn,穿越时空的Linuxsir!
»
论坛
›
编程开发讨论区 —— LinuxSir.cn
›
Linux 程序设计专题讨论
›
怎样进行条件编译?
返回列表
查看:
916
|
回复:
4
怎样进行条件编译?
[复制链接]
dyte300
dyte300
当前离线
积分
130
IP卡
狗仔卡
发表于 2006-10-29 23:00:21
|
显示全部楼层
|
阅读模式
我想实现:如果系统有alsa库,就编译含有alsa的一段代码,否则编译含有oss的一段代码,应该怎么办?
如果用Makefile,该怎样写?
回复
使用道具
举报
提升卡
置顶卡
沉默卡
喧嚣卡
变色卡
显身卡
realtang
realtang
当前离线
积分
1279
IP卡
狗仔卡
发表于 2006-10-30 09:47:48
|
显示全部楼层
这东西一般不写在Makefile里,而是在configure脚本里,看看mplayer的configure脚本就明白了。它是写段测试alsa的C代码,必须要include alsa的头文件,然后执行alsa的一个什么函数,然后gcc编译它通过shell返回值,如果为0,表示编译成功,那么就说明alsa可用。oss也是同样的道理。
回复
支持
反对
使用道具
举报
显身卡
dyte300
dyte300
当前离线
积分
130
IP卡
狗仔卡
楼主
|
发表于 2006-10-30 11:13:04
|
显示全部楼层
看来只能用autotool了,那么用autotool的话就应该写在configure.in文件中?
回复
支持
反对
使用道具
举报
显身卡
future_god
future_god
当前离线
积分
452
IP卡
狗仔卡
发表于 2006-10-30 13:20:35
|
显示全部楼层
in Makefile
CFLAGS+=-DALSA
复制代码
in filename.c
#ifdef ALSA
code concerning alsa
#endif
#ifndef ALSA
code concerning oss
#endif
复制代码
回复
支持
反对
使用道具
举报
显身卡
realtang
realtang
当前离线
积分
1279
IP卡
狗仔卡
发表于 2006-11-2 17:01:33
|
显示全部楼层
Post by
dyte300
看来只能用autotool了,那么用autotool的话就应该写在configure.in文件中?
是写configure.ac文件。AC_CHECK_LIB(LIBRARY, FUNCT, [ACT-IF-FOUND], [ACT-IF-NOT])。
回复
支持
反对
使用道具
举报
显身卡
返回列表
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
|
注册
本版积分规则
发表回复
回帖后跳转到最后一页
浏览过的版块
Archlinux讨论区
硬件设备 Linux 驱动
Linux 基础讨论区(新手速成)
LFS(LinuxfromScratch)
Slackware Linux
Copyright © 2002-2023
LinuxSir.cn
(http://www.linuxsir.cn/) 版权所有 All Rights Reserved.
Powered by
RedflagLinux!
技术支持:
中科红旗
|
京ICP备19024520号
快速回复
返回顶部
返回列表