哈嘍源碼
❶ linux下模塊的編譯,寫好源文件了,最簡單的一個hello的C程序,怎麼寫makefile文件,參照好多資料,都不行
Makefile的寫法,注意KDIR的根據你的源碼目錄更改,我的是ubuntu11.04的源碼目錄。
obj-m :=hello.o
KDIR := /usr/src/linux-headers-2.6.38-8-generic/
all:
make -C $(KDIR) M=$(shell pwd) moles
clean:
make -C $(KDIR) M=$(shell pwd) clean
❷ 為什麼新浪sae把源碼上傳了,打開網址是hello. sae
新浪博客代碼注意上了鉤,在文本輸入框下面的代碼顯示源代碼,如何正確使用代碼來改變自己的旗幟廣告+背景圖。 1.BANNER切斷或使770 * 135像素(不要使用其他尺寸的圖像),個性化的橫幅標語或動畫人物的尺寸; 2,將製作好的地圖或上傳到互聯網上生成一個圖片或動畫URL動畫; 3,復制網址到編寫相應的代碼「URL」的位置即可。圖片橫幅旗幟代碼如下: URL WIDTH = 770高= 135>
這種方法覆蓋原來的地址腐爛和標題,如果你不想使用以下命令:
CSS>
.banner {背景:網址(圖像處理)無重復沒有滾動mportant ;!} 注意:使用上面的代碼只能被改變時,在回家的路上看到!
❸ 求用 ml64.exe 寫hello world的源代碼
可能2個問題: 1.LCC的路徑裡面不要有中文,各種標點符號等等。 2.有些軟體需要在編譯之前進行保存,你可以保存一下在試試看編譯。
❹ 求一個c++源代碼, 可以輸出"hello world!"
#include<bits/stdc++.h>//萬能頭using namespace std;int main(){ cout<<"hello world!"; //直接輸出 return 0;}
❺ Linux 下編一個名為「HELLO.c」的簡單hello程序,用gcc HELLO.c命令執行後生成的a.out執行正常,但是
你直接用gcc命令編譯出來的是一個擴展名為out的二進制文件
並不是可執行文件
直接編譯可執行文件要這樣:
gcc HELLO.c -o HELLO.exe
當然,-o後面那個是編譯出來的可執行文件名
那個名字叫什麼你可以隨意起~擴展名也可以隨意~
畢竟Linux不像Windows那樣對擴展名有什麼嚴格要求~~
我個人比較習慣將擴展名定為.linux
這個完全看個人習慣~~
==========================================
bash命令是執行腳本的吧……
相當於Windows下的批處理……
你前三個命令分別是將一個C語言的源碼文件進行了預處理、編譯、匯編
現在就剩下最後一步鏈接就可以形成可執行程序了
你卻用bash命令把它當成一個腳本來運行……
你能告訴我你為什麼這么做么……
❻ Notepad++ 同樣的語句我用editplus 輸出就能出hello 用notepad就不行,只是出現源碼。能解釋一下么
是在不行,換個版本的notepad++
❼ 用struts框架開發helloapp應用怎麼開始
Struts是Apache軟體組織提供的一項開放源碼項目,它為Java Web應用提供了模型-視圖-控制器(Model-View- Controller,簡稱MVC)框架,尤其適用於開發大型可擴展的Web應用。Struts這個名字來源於在建築和舊式飛機中使用的支持金屬架。 Struts為Web 應用提供了一個通用的框架,使得開發人員可以把精力集中在如何解決實際業務問題上。此外, Struts 框架提供了許多供擴展和定製的地方,應用程序可以方便的擴展框架,來更好的適應用戶的實際需求。
Spring 框架是一個分層架構,由 7 個定義良好的模塊組成。Spring 模塊構建在核心容器之上,核心容器定義了創建、配置和管理 bean 的方式,如圖 1 所示。
組成 Spring 框架的每個模塊(或組件)都可以單獨存在,或者與其他一個或多個模塊聯合實現。每個模塊的功能如下:
核心容器:核心容器提供 Spring 框架的基本功能。核心容器的主要組件是 BeanFactory,它是工廠模式的實現。BeanFactory 使用控制反轉 (IOC) 模式將應用程序的配置和依賴性規范與實際的應用程序代碼分開。
Spring 上下文:Spring 上下文是一個配置文件,向 Spring 框架提供上下文信息。Spring 上下文包括企業服務,例如 JNDI、EJB、電子郵件、國際化、校驗和調度功能。
Spring AOP:通過配置管理特性,Spring AOP 模塊直接將面向方面的編程功能集成到了 Spring 框架中。所以,可以很容易地使 Spring 框架管理的任何對象支持 AOP。Spring AOP 模塊為基於 Spring 的應用程序中的對象提供了事務管理服務。通過使用 Spring AOP,不用依賴 EJB 組件,就可以將聲明性事務管理集成到應用程序中。
Spring DAO:JDBC DAO 抽象層提供了有意義的異常層次結構,可用該結構來管理異常處理和不同資料庫供應商拋出的錯誤消息。異常層次結構簡化了錯誤處理,並且極大地降低了需要編寫的異常代碼數量(例如打開和關閉連接)。Spring DAO 的面向 JDBC 的異常遵從通用的 DAO 異常層次結構。
Spring ORM:Spring 框架插入了若干個 ORM 框架,從而提供了 ORM 的對象關系工具,其中包括 JDO、Hibernate 和 iBatis SQL Map。所有這些都遵從 Spring 的通用事務和 DAO 異常層次結構。
Spring Web 模塊:Web 上下文模塊建立在應用程序上下文模塊之上,為基於 Web 的應用程序提供了上下文。所以,Spring 框架支持與 Jakarta Struts 的集成。Web 模塊還簡化了處理多部分請求以及將請求參數綁定到域對象的工作。
Spring MVC 框架:MVC 框架是一個全功能的構建 Web 應用程序的 MVC 實現。通過策略介面,MVC 框架變成為高度可配置的,MVC 容納了大量視圖技術,其中包括 JSP、Velocity、Tiles、iText 和 POI。
Spring 框架的功能可以用在任何 J2EE 伺服器中,大多數功能也適用於不受管理的環境。Spring 的核心要點是:支持不綁定到特定 J2EE 服務的可重用業務和數據訪問對象。毫無疑問,這樣的對象可以在不同 J2EE 環境 (Web 或 EJB)、獨立應用程序、測試環境之間重用。
❽ 怎麼用dev c++編寫hello
DEV-C是個IDE,它的編譯器是MinGW一、使用單步調試和觀察變數的步驟:1.編譯通過(ctrl+F9)2.設置斷點(ctrl+F5)3.調試(F8)4.增加觀察變數(在左邊的debug觀察窗口右鍵增加或者F4)5.單步調試:F76.結束調試:ctrl+alt+f2簡單來說,它有兩種方式,一種是源碼debug,即分析源碼來找出bug位置,一般使用printf()列印出程序執行每一步的信息,一種是可執行文件debug,需要使用調試器來進行。1.源碼debug。類似於下面的源碼,主要通過程序執行時輸出的信息,來定位bug出現的位置,然後再修改源碼。例如:#includevoidf(){;}intmain(){#ifdef_DEBUGprintf("startmainfunction!\n");#endifvoidf();#ifdef_DEBUGprintf("leavemainfunction!\n");#endifreturn0;}2.可執行文件調試,windows平台常用的就是vs/vc自帶的調試,另外一個就是微軟自家開發的調試器windbg。Linux平台以gdb為常用。下面以dev-C++為例:1)在「工具」-》編譯選項-》"編譯時加入以下命令"下面的編輯框里加上:-g32)在下面的"在連接器命令行加入以下命令"下的編輯框上加上:-g33)轉到程序頁,把gcc行修改為:gcc.exe-D__DEBUG__,4)把g++行修改為:g++.exe-D__DEBUG__,5)點擊確定,重新編譯,就能調試了。
❾ JAVA輸出hello world源碼怎麼寫
//如果有包(也就是類不在默認文件夾下)
package 包名;
public class test{
public static void main(String [] args){
System.out.println("hello world");
}
}
❿ 用匯編語言編寫一個小程序(比如hello,word!)請懂的人幫忙提供源碼
您正在看的匯編語言是:hello,world!win32匯編小程序。
首先我們看一個「復雜」的Win32匯編程序
程序用來顯示一個消息框
--------------------------------------------------
;文件名:3.asm
.386
.model flat ,stdcall
NULL equ 0
MB_OK equ 0
ExitProcess PROTO :Dword
MessageBoxA PROTO :DWORD,:DWORD,:DWORD,:Dword
includelib kernel32.lib
includelib user32.lib
.data
szText db "Hello, world!",0
szCaption db "Win32Asm",0
.code
start:
push MB_OK
lea eax,szCaption
push eax
lea eax,szText
push eax
push NULL
call messageboxa
xor eax,eax
push eax
call exitprocess
end start
--------------------------------------------------
編譯鏈接:
分下面兩步進行:
ml /c /coff 3.asm
link /subsystem:Windows /libpath:d:\masm7\lib 3.obj
第一步編譯生成3.obj文件
/c 表示只編譯,不鏈接
/coff 表示生成COFF格式的目標文件
第二步鏈接生成3.exe文件
/subsystem:windows 表示生成Windows文件
/libpath:d:\masm7\lib 表示引入庫的路徑為:d:\masm7\lib。
在安裝Masm32後,引入庫位於Masm32\Lib目錄下。
也可設置環境變數Lib的值:在dos提示符下鍵入Set Lib=d:\masm7\lib,這樣「鏈接」就可簡單寫成:
link /subsystem:Windows 3.obj,試想一下,在程序調試過程中,修改源程序是常用的事啦,每次編譯鏈接都要帶/libpath:...那該有多煩人呢。當然,我們也可在源程序中直接給出引入庫的位置,這樣,鏈接時就方便啦,如下:
includelib d:\masm7\lib\kernel32.lib
includelib d:\masm7\lib\user32.lib
--------------------------------------------------
執行:在dos提示符下鍵入3,回車,出現一個消息框,哈哈,真正的Win32程序!
--------------------------------------------------
深入分析:
看一下源程序,有這么兩行:call messageboxa\call exitprocess。大家一看都知道,這是子程序調用,但是我們並沒寫這樣的子程序,事實上,這些是API函數。作為函數,我們在調用時可能需要傳送給函數一些參數,程序怎麼知道傳送的參數有哪些,類型是什麼呢?就是通過函數原型定義,如下所示:
ExitProcess PROTO :Dword
MessageBoxA PROTO :DWORD,:DWORD,:DWORD,:Dword
可以看出,ExitProcess有一個參數,MessageBoxA有四個參數,這些參數都是Dword類型。
在Win32中,參數的傳遞都是通過堆棧來完成的。象MessageBoxA這個函數有四個參數,究竟是左邊的先壓入堆棧還是右邊的先入棧呢?.model flat,stdcall給出了答案。stdcall 指定參數是從右到左壓入堆棧的,且調整堆棧是在子程序返回時完成的。在源程序中不需要用「add sp,值」來保持堆棧平衡。對MessageBox,在API手冊中是這樣定義的:
int MessageBox(
HWND hWnd, // handle of owner window
LPCTSTR lpText, // address of text in message box
LPCTSTR lpCaption, // address of title of message box
UINT uType &n
您正在看的匯編語言是:hello,world!win32匯編小程序。
bsp; // style of message box
)
;所以會有我們的程序段:
push MB_OK
lea eax,szCaption
push eax
lea eax,szText
push eax
push NULL
call messageboxa
看看上面的程序,不難想到,假如在寫程序時,少往堆棧里壓入一個數據,那將是一個致命的錯誤。能不能將這種檢查參數個數是否匹配的工作交給計算機來完成呢?這是可以的,INVOKE指令可以幫助我們完成這樣的工作。假如你的參數個數不正確,連接器將給出錯誤提示。所以,極力建議你使用invoke代替call來調用子程序,當然,這不是絕對的。使用invoke上面的指令就可簡寫成下面的樣子,看起來簡煉多啦,查錯也方便啦!
invoke messageboxa, NULL,addr szText,addr szCaption,MB_OK
另外,像NULL,MB_OK都是一些常量,這樣的常量有很多,還有很多的結構,如果在我們的程序中一開始都寫這么多的東西,可能一下子就把你嚇怕啦,也容易出錯,更不便於看程序的主要部分。hutch整理的Windows.inc包含了WIN32編程所需要的常量和結構體的定義,我們可簡單的用一個include指令將這些常量和結構的定義插入到我們的文件中:
include d:\masm32\include\Windows.inc
但是Windows.inc中並不包含函數原型的聲明,還要從其他的頭文件中得到函數原型的聲明,比如:messageboxa的原型聲明在user32.inc文件中,exitprocess在kernel32.inc文件中。這些頭文件都放在 \masm32\include文件夾下。
還有,要用Windows.inc,必須使用option casemap:none,它的意思是告訴 MASM 要區分符號的大小寫,譬如:start和START是不一樣的。否則,一個小小的程序,可能會出成百上千的錯誤呀!
其他的,就不再細說啦,到此,上面的程序可重新修改如下:
-----------------------------------------------------------------
;最終的結果
.386 ;表示要用到386指令
.model flat,stdcall ;32位程序,要用flat啦!;stadcall,標准調用
option casemap:none ;區別大小寫
include Windows.inc ;包括常量及結構定義
include kernel32.inc ;函數原型聲明
include user32.inc
includelib kernel32.lib ;用到的引入庫
includelib user32.lib
.data;數據區,定義2個字元串
szText db "Hello, world!",0
szCaption db "Win32Asm",0
.code ;代碼開始執行處
start:
invoke MessageBox,NULL,addr szText,addr szCaption,MB_OK
;調用MessageBoxAPI函數
invoke ExitProcess,NULL ;程序退出
end start;結束
------------------------------------
編譯鏈接:
ml /c /coff /I d:\masm7\include 3.asm ;注意開關符識別大小寫
link /subsystem:Windows /libpath:d:\masm7\lib 3.obj
/I d:\masm7\include 表示*.inc文件的位置,也可設置環境變數Set include=d:\masm7\include來簡化操作,也可在程序中明確指出*.inc的位置。
前面講的都是用兩條指令來完成編譯鏈接,實際上用一條指令也可完成,如下:
ml /coff /I d:\masm7\include 3.asm /link /subsystem:Windows /libpath:lib
若*.inc及引入庫在源程序中都明確指出其位置,則可簡化為:
ml /coff 3.asm /link /subsystem: