qt如何實現c程序編譯運行
① 如何在QT中實現c語言中調用C++的函數
C source file的實現。
#include "obj.h"
int main(const int argc, const char **argv){
void *temp_obj = getObj(100);
printString(temp_obj);//實現C語言調用QT/C++UI界面兄埋
return (0);
}
寫一個C++ source file和c source file都可以共同包含的頭文件,如下所示。
#include <stdint.h>
#ifdef __cplusplus
class Obj{
public:
Obj(int32_t a=50)
~Obj();
std::string toString();
private:
int32_t k;
};
#endif
#ifdef __cplusplus
extern "C" {
#endif
void* getObj(int32_t a);
void destroyObj(void *obj);
void printString(void *obj);
#ifdef __cplusplus
}
#endif
C++ source file的實現,其中C語言函數是供跡野C source file調用的。
#include <iostream>
#include <sstream>
#include <iomanip>
#include <stdint.h>
#include "obj.h"
Obj::Obj(int32_t a){
k = a << 1;
}
Obj::~Obj(){
/* don't really need to do anything here */
/* k = 0 only for example purposes */
k = 0;
}
std::string Obj::toString(){
std::ostringstream os;
os << "Obj is currently: " << this->k <<羨州螞 std::endl;
return os.str();
}
void* getObj(int32_t a){
Obj *out = new Obj(a);
return ((void*)out);
}
void destroyObj(void* obj){
delete (((Foo*)obj));
}
void printString(void *obj){
std::string s = ((Obj*)obj)->toString();
std::cout << s;
}
Makefile
make file的實現。
CC ?= gcc
CXX ?= g++
CFLAGS = -O0 -g
CXXFLGS = -00 -g
OBJ = main obj
OBJS = $(addsuffix .o,$(OBJ))
all:
make compile
compile:
make $(OBJS)
make objexe
fooexe: $(OBJS)
$(CXX) -o fooexe $(OBJS)
main.o: main.c
$(CC) -c -o main.o main.c
obj.o: obj.cpp
$(CXX) -c -o obj.o obj.cpp
clean:
rm -rf $(OBJS) objexe *.dSYM
② Qt 如何編譯成可執行程序,像VC的靜態編譯,可以在脫離QT的環境中運行
qt
如何編譯成可執行程序,像vc的靜態編譯,可以在脫離qt...
開源版本
不允許靜態編譯
可以將dll打包,就能再其他的機器上運行了.
榵彨廀峓朢桸潂椺壱檢挰洏煠愝噐
③ Qt Creator怎麼靜態編譯C++程序
如果你說的是Qt程序的話,靜態編譯就得自行從源碼開始編譯Qt靜態庫,官網預編譯的版本是不包含靜態庫的。這個很復雜,請參考qt-everywhere-opensource 中提供的編譯幫助。注意如果使用miongw的話,gcc版本最好不要是4.6.2。這個版本比較特殊,但是它是mingw官方版的最新打包版本。
如果你說的是非qt庫依賴的話,有兩種mingw和vs,前者有部分發行版默認去除了dll依賴,直接連接的靜態庫,後者非常不推薦使用靜態庫,畢竟它載入的是系統常用dll,基本上所有系統都是推薦安裝的運行時環境,用靜態庫吃力不討好。
④ qt4.5.2(200903)如何編譯c/c++文件
問題不清楚
qt不是編譯器,怎麼敏正編譯程序
什麼東西提示binary not found
可能你需要mingw和必要的環橋激悔境鉛御變數
mingw cygwin 裡面的 gcc 是編譯器
⑤ 求助大神,qt5.5.1如何編譯c語言
new project->Non-Qt project ->Plain C Application 記得E文路徑
⑥ QT與C程序的調用
肯定是3簡單啊!qt不就是基於c的語言嗎?都談不上混合編程,普通的c程序用qmake一樣編譯
⑦ qt純c代碼運行窗口如何調出
可以直接創建帶有窗口的程序。
新建項目後選擇成Console程序後發現編譯器中報錯,就需引入頭文件來實現讀取數據。這樣就能將運行窗口調出。
要先了解Qt的規則,再使用純C代碼運行。
⑧ Qt 中可以直接編譯objective-c代碼嗎 如果能如何做 如果不能,為什麼
不能 目前能編譯objective-c的好像只有xcode
⑨ QT 5.5.0 怎麼設置才能實現靜態編譯
qt默認的編譯方式是動態編譯的,但是有時候編寫的程序要發布出去,帶很多動態庫文件是很繁瑣的,此時就需要靜態編譯程序,qt要實現靜態編譯必須庫文件也是靜態編譯的,可以用這個命令編譯靜態庫:
1.將c:\qt\2010.05\qt\mkspecs\win32-g++\qmake.conf文件中的qmake_lflags
=
-enable-stdcall-fixup
-wl,-enable-auto-import
-wl,-enable-runtime-pseudo-reloc
改為
qmake_lflags
=
-static
-enable-stdcall-fixup
-wl,-enable-auto-import
-wl,-enable-runtime-pseudo-reloc
2.在開始菜單里找到qt
command
prompt並運行,輸入命令:
configure
-static
-debug-and-release
-no-exceptions
-l
"c:\qt\2010.05\qt\include"
-l
"c:\qt\2010.05\qt\lib"
-l指定一下路徑,防止用到vc的頭文
⑩ qt要如何直接運行一個c++的常式,是否要建立一個項目
x需要建立一個C++的工程項目,然後把你之前工程裡面的文件都拷貝過來,編譯運行即可。