⑴ 新手用什麼c語言編譯器
TC吧,但是TC不能復制、粘貼,如果覺得TC不好,就用VC++ 6.0或DEV C++都行,雖然是C++的編譯環境,但C語言也可以用的
⑵ 能實現輸入函數的C/C++在線編譯器
我認為目前最好用的在線編譯器; http://www.mcqyy.com/RunCode/cpp/
⑶ 目前最好用的c語言編譯器
沒有最好用的,只有最適用的C編譯器,因為C語言是平台依賴型系統高級語言。在linux上就是GCC用的最多,Windows上就是VC
⑷ 如何用java調用c語言編譯器實現在線編譯c語
要在java中調用c語言的庫,需要使用Java提供了JNI。
舉例說明
在c語言中定義一個 void sayHello()函數(列印Hello World);然後在Java中調用這個函數顯示Hello Word.
現在分別從Java和C語言兩部分說明:
1. Java 部分
首先定義一個HelloNative,在其中申明sayHello函數,函數要申明為Native 類型的.如下:
public class HelloNative {
public native void sayHello();
}
編譯這個類,生成class文件:
javac HelloWorld.java
利用javah生成需要的h文件
javah HelloNative
生成的 h文件大概如下:
/* DO NOT EDIT THIS FILE - it is machine generated */
#include <jni.h>
/* Header for class HelloNative */
#ifndef _Included_HelloNative
#define _Included_HelloNative
#ifdef __cplusplus
extern "C" {
#endif
/*
* Class: HelloNative
* Method: sayHello
* Signature: ()V
*/
JNIEXPORT void JNICALL Java_HelloNative_sayHello
(JNIEnv *, jobject);
#ifdef __cplusplus
}
#endif
#endif
可以看一下上面自動生成的程序,程序include了jni.h,這個頭文件在 $JAVA_HOME下的include文件夾下. 還可以發現生成的函數名是在之前的函數名前面加上了Java_HelloNative。
2. C語言部分
根據上面生成的h文件編寫相應的代碼實現,建立一個 HelloNative.cpp用來實現顯示Hello World的函數.如下:
#include <stdio.h>
#include "HelloNative.h"
JNIEXPORT void JNICALL Java_HelloNative_sayHello(JNIEnv *, jobject)
{
printf("Hello World!\n");
}
代碼編寫完成之後,我們再用gcc編譯成庫文件,命令如下;
gcc -fPIC -I/usr/lib/jvm/java-7-openjdk-i386/include -I/usr/lib/jvm/java-7-openjdk-i386/include/linux -shared -o libHelloNative.so HelloNative.cpp
這樣就會在當前目錄下生成一個libHelloNative.so的庫文件.這時需要的庫已經生成,在C語言下的工作已經完成了.
接下來需要在Java中編寫一個程序測試一下.在程序前,需要將我們的庫載入進去.載入的方法是調用Java的 System.loadLibrary("HelloNative");
public class TestNative
{
static {
try {
System.loadLibrary("HelloNative");
}
catch(UnsatisfiedLinkError e) {
System.out.println( "Cannot load hello library:\n " + e.toString() );
}
}
public static void main(String[] args) {
HelloNative test = new HelloNative();
test.sayHello();
}
}
但是再編譯後,運行的時候,問題又出現了.
Cannot load hello library:
java.lang.UnsatisfiedLinkError: no HelloNative in java.library.path
Exception in thread "main" java.lang.UnsatisfiedLinkError: HelloNative.sayHello()V
at HelloNative.sayHello(Native Method)
at TestNative.main(TestNative.java:13)
載入庫失敗,但是庫明明就是放在當前文件夾下的,怎麼會載入失敗呢?
用System.getProperty("java.library.path")查看,發現java.library.path中並不u存在當前的目錄.主要有以下的幾個解決辦法:
1) 將生成的庫復制到java.library.path有的路徑中去,當然這樣不是很好
2) 設置環境變數export LD_LIBRARY_PATH=.:$LD_LIBRARY_PATH ,將當前的目錄加入到LD_LIBRARY_PATH中
3) 設置java 的選項,將當前的目錄加入到其中 .java -Djava.library.path=. $LD_LIBRARY_PATH
這樣之後程序就能夠成功的運行了.可以看見顯示的"Hello World!"了
⑸ windows下C語言編譯器
c-free很好用,可以編譯C和C++程序,而且支持中文,但因為默認是C++,所以編寫C語言程序的時候要記得寫擴展名.c
⑹ C語言編譯器怎麼用
得先以你下載的那個編譯器把 11.c 編譯了, 生成執行文件, 再在cmd中運行這個執行文件
⑺ c語言編譯器如何運行
編譯共分為四個階段:預處理階段、編譯階段、匯編階段、鏈接階段。
1、預處理階段:
主要工作是將頭文件插入到所寫的代碼中,生成擴展名為「.i」的文件替換原來的擴展名為「.c」的文件,但是原來的文件仍然保留,只是執行過程中的實際文件發生了改變。(這里所說的替換並不是指原來的文件被刪除)
2、匯編階段:
插入匯編語言程序,將代碼翻譯成匯編語言。編譯器首先要檢查代碼的規范性、是否有語法錯誤等,以確定代碼的實際要做的工作,在檢查無誤後,編譯器把代碼翻譯成匯編語言,同時將擴展名為「.i」的文件翻譯成擴展名為「.s」的文件。
3、編譯階段:
將匯編語言翻譯成機器語言指令,並將指令打包封存成可重定位目標程序的格式,將擴展名為「.s」的文件翻譯成擴展名為「.o」的二進制文件。
4、鏈接階段:
在示例代碼中,改代碼文件調用了標准庫中printf函數。而printf函數的實際存儲位置是一個單獨編譯的目標文件(編譯的結果也是擴展名為「.o」的文件),所以此時主函數調用的時候,需要將該文件(即printf函數所在的編譯文件)與hello world文件整合到一起,此時鏈接器就可以大顯神通了,將兩個文件合並後生成一個可執行目標文件。
⑻ C語言編譯器
目前比較流行的包括微軟的Visual C++,GCC, Turbo C等。
個人比較推薦GCC,對於初學者而言,雖然Visual C++比較快上手,它幫助開發人員快速新建工程,並添加工程相關代碼,只需要在這個平台之上直接開發代碼即可,但是這個平台把C語言的一些很關鍵的東西給省略了,例如Makefile,例如一些基本的庫函數的引用之類的。
GCC能讓開發人員從編譯器的角度出發,把程序的編譯,鏈接等一步一步都完全展示出來,而且也是建立的ANSI C的基礎上的,推薦GCC。開發者可以利用一些簡單的文本編輯器進行程序的編寫,然後通過GCC來編譯,這樣可以在起步就不收到包括Visual C++的限制,讓初學者可以更關注與整個程序的編譯過程。
當然如果說到調試方法的話,建議採用Visual C++,它提供的單步跟蹤功能確實非常好,不過在GCC下也可以用GDB進行操作,一起看個人的喜好。
⑼ 有什麼免費的C語言編譯器嗎
ide的話vs有學生版本的,cfree,codeblock,devc++都是免費的
⑽ c語言編譯器
編譯器無好壞 最流行的就好 ,很多人都用trubo c 2.0.vc6.0這些都是些很老很過時的編譯器。用最新的吧,從工程入手。不然學了半年編程,連怎麼建立最簡單的工程都不會。vs2010,vs2012,vs2008,