• 8805阅读
  • 6回复

qt调用 c程序 [复制链接]

上一主题 下一主题
离线wswhp
 
只看楼主 倒序阅读 楼主  发表于: 2008-10-23
— 本帖被 XChinux 执行加亮操作(2008-10-24) —
我有个c++程序,确切的说是qt程序。 它完成界面的设计和参数的输入。
在验证参数后需要调用一个完成编译的c程序并且要传参数给这个c程序,c++ 程序要
等待c程序允许结束后再继续。
由于这个c程序是一个alsa的应用,编译时一定要加-lasound,
(gcc capture.c -o capture  -lasound)
所以我认为c++不能直接调用这个c程序,而是只能调用它编译后的可执行文件。
我在c++中使用 system("./capture");但是没有效果,请问大虾们。
应该怎么调用,因为capture是命令行的调用 我不知道怎么在c++中写。
我的环境是linux opensuse.


有人提议用把c编译成so文件, 但是我想问应该如果在qt中调用这个so文件?困惑

离线首席公民
只看该作者 1楼 发表于: 2008-10-23
一锅煮
源代码都有了 直接在一起编译不就完了吗

C++能编译C的
extern "C"{
xxxxx.h
}
-----------------------------------------------
欢迎访问
http://blog.csdn.net/wjstone
-----------------------------------------------
离线water_wf

只看该作者 2楼 发表于: 2008-10-23
用QProcess
离线wswhp
只看该作者 3楼 发表于: 2008-10-24
楼上能给个例子吧


还有如果用so文件 qt应该如何引用这个so文件阿 , 怎么改编译语句阿 makefile?
离线首席公民
只看该作者 4楼 发表于: 2008-10-24
例如: libXX.so

在pro文件中加入
LIBS+=-lXX
-----------------------------------------------
欢迎访问
http://blog.csdn.net/wjstone
-----------------------------------------------
离线wswhp
只看该作者 5楼 发表于: 2008-10-25
我的pro文件里是
TEMPLATE = app
TARGET =
DEPENDPATH += .
INCLUDEPATH += .

# Input
HEADERS += alsa.h
SOURCES += alsa.cpp main.cpp


没有你说的libs 是不是 在最后加一行阿 谢谢
离线htyoung

只看该作者 6楼 发表于: 2008-10-25
可以将 LIBS它加在
TARGET =
后边

有空看一下这个.有很详细的介绍 libs.



http://www.potu.com/man/doc.trolltech.com/4.0/qmake-variable-reference.html#libs
***
QT5
***
快速回复
限100 字节
 
上一个 下一个