Ⅰ 使用Dreamweaver CC2018在動態站點中編譯ASP,網頁只顯示代碼,沒有編譯結果
默認文件設置一下,然後目錄關了就行了,還不會再找額,謝謝,如果是自學可以找額帶教。
Ⅱ C語言編譯原理是什麼
編譯共分為四個階段:預處理階段、編譯階段、匯編階段、鏈接階段。
1、預處理階段:
主要工作是將頭文件插入到所寫的代碼中,生成擴展名為「.i」的文件替換原來的擴展名為「.c」的文件,但是原來的文件仍然保留,只是執行過程中的實際文件發生了改變。(這里所說的替換並不是指原來的文件被刪除)
2、匯編階段:
插入匯編語言程序,將代碼翻譯成匯編語言。編譯器首先要檢查代碼的規范性、是否有語法錯誤等,以確定代碼的實際要做的工作,在檢查無誤後,編譯器把代碼翻譯成匯編語言,同時將擴展名為「.i」的文件翻譯成擴展名為「.s」的文件。
3、編譯階段:
將匯編語言翻譯成機器語言指令,並將指令打包封存成可重定位目標程序的格式,將擴展名為「.s」的文件翻譯成擴展名為「.o」的二進制文件。
4、鏈接階段:
在示例代碼中,改代碼文件調用了標准庫中printf函數。而printf函數的實際存儲位置是一個單獨編譯的目標文件(編譯的結果也是擴展名為「.o」的文件),所以此時主函數調用的時候,需要將該文件(即printf函數所在的編譯文件)與hello world文件整合到一起,此時鏈接器就可以大顯神通了,將兩個文件合並後生成一個可執行目標文件。
Ⅲ 用cc怎樣把.c文件編譯成.so文件
比如有一個test.c文件,我想打包成動態庫test.so,
直接gcc test.c -o test.o -fPIC
gcc -o test.so test.o -shared
使用的時候發布.so和頭文件即可。
鏈接的時候要記得丟在默認目錄或者將其所在目錄聲明到環境變數,不然有時候會提示找不到這個庫文件。
Ⅳ 怎樣利用CC命令在Unix上編譯C程序
在 UNIX系統下面,使用 cc 命令最常用的選項主要有如下幾個(以 my_prog.c 為例進行說明)
$cc -c my_prog.c <cr> (-c 選項表示只編譯、產生中間文件,不進行鏈接、並產生最終的可執行程序)
$cc my_prog.c <cr>(編譯、鏈接,並產生預設的可執行程序。預設的可執行文件名為:a.out)
$cc -o my_runfile my_prog.c <cr>(-o 選項用於生成用戶指定的可執行程序名,代替預設的可執行文件名:a.out。這里的可執行文件名是:my_runfile)
至於說還有很多其他選項,例如:-L系統庫名字(*.LIB)等,那就需要在平時的編程過程中去體會了。
另外,如果是在 linux 系統下面進行 C 語言的開發,使用的是 gcc 編譯器。其選項和 cc 編譯器相同。
Ⅳ linux系統中$ cc -o short short.c –lbaked是什麼意思
大體意思是: 用名為cc的編譯器(其實就是gcc啦)編譯C語言文件short.c,用 -o 指定編譯出來的可執行文件為 short , 編譯的時候還會鏈接一個靜態庫文件 libbaked.a 或動態庫文件 libbaked.so
libbaked.a 中一般包含short.c調用到的子程序,函數等等東東。
需要注意的是 libbaked.a 必須要處在庫搜索路徑中,否則出錯說找不到
或者用 -L???? 解決, libbaked.so 同理
libbaked.a 編譯時連接 執行時無需再連接,執行文件已把庫包含進來。
libbaked.so 編譯時連接,執行時還要連接,執行文件沒把庫包含進來只告知需要連接這個庫。
Ⅵ 請問linux下cc和gcc是同一個東西嗎
linux下cc和gcc是同一個東西.
cc 是 unix 上 C 編譯器 傳統 名字。linux 仿 unix,你可以用 名字 cc .
linux 上 C 編譯器 就是 GNU C 編譯器 gcc。
unix 上 可以另裝 gcc, 但 unix 自帶的 cc 編譯器 不是 gcc。
Ⅶ 如何在configure時,將編譯參數傳入,改變默認的編譯器gcc成arm
按照INSTALL中的介紹,也是常用的方法,在configure的時候,加上–host=arm-linux,結果沒有實現我們要的效果,沒有將編譯器從默認的
gcc改成arm-linux-gcc,編譯器還是用的默認的gcc:
[crifan@localhost lrzsz-0.12.20]$ CFLAGS=-O2 ./configure –host=arm-linux
loading cache ./config.cache
………………..
checking for gcc… (cached) gcc
checking whether the C compiler (gcc -O2 ) works… yes
checking whether the C compiler (gcc -O2 ) is a cross-compiler… no
………………..
後來經過多次嘗試,最後受默認的
CFLAGS=-O2 ./configure
進行配置所啟發,想到,是否可以將CC參數傳入到configure中,
結果證實,如果沒有自己的cache-file,即時加了對的CC參數,也還是無法傳入:
[crifan@localhost lrzsz-0.12.20]$ CFLAGS=-O2 CC=arm-linux-gcc ./configure –host=arm-linux
loading cache ./config.cache
………………..
checking for gcc… (cached) gcc
checking whether the C compiler (gcc -O2 ) works… yes
checking whether the C compiler (gcc -O2 ) is a cross-compiler… no
checking whether we are using GNU C… (cached) yes
………………..
而且,如果CC參數放在configure後面:
./configure CC=arm-linux-gcc
則不能識別:
[crifan@localhost lrzsz-0.12.20]$ CFLAGS=-O2 ./configure CC=arm-linux-gcc
configure: warning: CC=arm-linux-gcc: invalid host type
………………..
參數傳遞必須像
CFLAGS=-O2 ./configure
一樣,將參數設置放在configure的前面:
CC=arm-linux-gcc./configure
才能識別的。
必須要自己制定自己的cache-file 然後用./configure進行新配置,加上CC參數,才會即時生效,編譯器才可以變成我們要的arm-linux-gcc:
[crifan@localhost lrzsz-0.12.20]$ CC=arm-linux-gcc ./configure –cache-file=cache_file_0 –prefix=/usr/crifan/lrzsz
………………..
checking for gcc… arm-linux-gcc
checking whether the C compiler (arm-linux-gcc ) works… yes
checking whether the C compiler (arm-linux-gcc ) is a cross-compiler… yes
checking whether we are using GNU C… yes
………………..
否則,就無法將我們的CC參數傳入了:
[crifan@localhost lrzsz-0.12.20]$ CC=arm-linux-gcc ./configure –prefix=/usr/crifan/lrzsz
………………..
checking for gcc… (cached) gcc
checking whether the C compiler (gcc ) works… yes
checking whether the C compiler (gcc ) is a cross-compiler… no
checking whether we are using GNU C… (cached) yes
………………..
[crifan@localhost lrzsz-0.12.20]$ CFLAGS=-O2 CC=arm-linux-gcc ./configure –cache-file=cache_file_0
loading cache cache_file_0
………………..
checking for gcc… arm-linux-gcc
checking whether the C compiler (arm-linux-gcc -O2 ) works… yes
checking whether the C compiler (arm-linux-gcc -O2 ) is a cross-compiler… yes
checking whether we are using GNU C… yes
最好此處在加上–prefix=/usr/crifan/lrzsz,表示具體安裝到哪裡
[crifan@localhost lrzsz-0.12.20]$ CFLAGS=-O2 CC=arm-linux-gcc ./configure –cache-file=cache_file_0 –prefix=/usr/crifan/lrzsz
loading cache cache_file_0
………………..
checking for gcc… arm-linux-gcc
checking whether the C compiler (arm-linux-gcc -O2 ) works… yes
checking whether the C compiler (arm-linux-gcc -O2 ) is a cross-compiler… yes
checking whether we are using GNU C… yes
………………..
其中,/usr/crifan/lrzsz是已經建立好的,已經存在的文件夾,上面這樣表示編譯後,
將生成的可執行文件安裝拷貝到那個目錄.
Ⅷ Linux下C編譯器cc的參數詳解
Linux 下面 cc 就是 gcc ……
你可以去 gcc.gnu.org 看看 gcc 的文檔,參數多的頭暈。
http://gcc.gnu.org/onlinedocs/gcc-4.3.0/gcc/Invoking-GCC.html#Invoking-GCC
Ⅸ Linux 下 cc 和 gcc 有和區別
linux基礎也很重要
Ⅹ cc gcc編譯器怎麼使用
gcc --help可以看gcc的編譯選項
常用的有
gcc -c xcxcx.c : -c 編譯C代碼,生成該文件的obj文件
gcc xcxcx.o -o dest : -o 鏈接各個obj文件,生成目標執行程序
-I : (這里是大寫i) 表示頭文件路徑
-L : 表示庫文件路徑
-l : (這里是小寫的L) 表示需要鏈接的庫文件
-O: (這里是大寫英文o) 表示優化參數
-WALL: 表示warning等級
這里是一句完整的話
g++ -Wl,-rpath,/usr/local/Trolltech/QtEmbedded-static/lib -o Qt_V4L_ShowImage main.o myWidget.o v4lThread.o moc_myWidget.o moc_v4lThread.o -L/usr/local/Trolltech/QtEmbedded-static/lib -lQtGui -L/usr/local/tslib/lib -L/usr/local/Trolltech/QtEmbedded-static/lib -L/usr/local/lib -L/home/root/ffmpeg/lib -lts -lQtNetwork -lQtCore -lc -lgcc -lm -lrt -ldl -lpthread -lavcodec -lavformat -lavutil -lx264 -xvidcore -lcv -lhighgui -lcvaux -lcxcore
不過還是自己看一下gcc的help比較好,那裡講的全面些