導航:首頁 > 操作系統 > wchartcharlinux

wchartcharlinux

發布時間:2023-01-13 05:38:04

linux里tchar.h沒有那個文件或目錄怎麼處

如果我沒有記錯的話,tchar.h應該是VS中的頭文件,也就是Windows平台才有的頭文件,在Linux上編譯Windows代碼才會提示「tchar.h:沒有那個文件或目錄」,因為在Linux上不管安裝什麼第三方函數庫都不會有這個頭文件的。你可以在網上下載這個頭文件(網上有為Windows代碼移植而自己編寫的),然後放到你需要編譯的源碼目錄中,但是你需要編譯的代碼也應該需要進行改寫,因為Windows代碼如果不在Linux上改寫,雖然解決了tchar.h的錯誤信息,再來編譯時還會報其他的錯誤信息的。

⑵ Linux下怎麼將wchar

CString是基於TCHAR數據類型的對象。如果在你的程序中定義了符號_UNICODE,則TCHAR被定義為類型wchar_t,即16位字元類型;否則,TCHAR被定義為char,即8位字元類型。在UNICODE方式下,CString對象由16位字元組成。非UNICODE方式下,CString對象由8位字元組成。當不使用_UNICODE時,CString是多位元組字元集(MBCS,也被認為是雙位元組字元集,DBCS)。注意,對於MBCS字元串,CString仍然基於8位字元來計算,返回,以及處理字元串,並且你的應用程序必須自己解釋MBCS的開始和結束位元組。/////////////////////////所以兩者是不需要轉換的,不知你怎麼會出現需要轉換的情況??難道你在非UNICODE的情況下要轉換成wchar_t?那就要2樓所用的函數MultiByteToWideChar

⑶ Linux下寬字元串輸出問題,求解...

setlocale( LC_ALL, "chs " );
看看是不是沒有調用這個函數
for example
char str[1024] = "abc123故障短路切換";
wchar_t array[1024]={0};
setlocale(LC_ALL,"zh_CN.GB2312");
/*from chinese to Unicode*/
if((ret=mbstowcs(array, str, strlen(str)))==-1)
{
printf("error\n");
}

goodluck

⑷ 為啥android下用到的.cpp中的sizeof(wchar_t)佔用四個位元組

暈,打個回車,結果發表了。我重新敘述下問題。我的android工程要用到C++代碼。在cygwin下gdb調試時發現sizeof(wchar_t)的結果是4,我看網上說是可以通過-fshort-wchar 來解決,於是我在mk文件中加入了下面這句話 LOCAL_CPP_FLAGS := -fshort-wchar 但是調試時發現還是佔用4個位元組。而在 Cygwin下通過vi ,新建一個.cpp文件,裡面cout << sizeof(wchar) << endl; 得出的結果卻是2。 求解,先謝謝啦

⑸ c++ unicode轉換成漢字

給你個思路,首先做字元串分拆,以 \u 為分隔符得到每一個編碼的值,如上面的 56de 這些子串.
然後參考:

Unicode 的 C 語言支持

在正式情況下,從 GNU glibc 2.2 開始,wchar_t 類型只為 32 位的 ISO 10646 格式數值所特定使用,與當前使用的語言環境無關。通過 ISO C99 所要求的 __STDC_ISO_10646__ 宏的定義作為信號通知應用程序。 __STDC_ISO_10646__ 的定義用來指出 wchar_t 是 Unicode。精確的值是一個十進制的 yyyymmL 格式的常數。例如,使用:
清單 4. 指出 wchar_t 是 Unicode

#define __STDC_ISO_10646__ 200104L

是為指出 wchar_t 類型的值是由 ISO/IEC 10646 和到指定的年月為止的所有修正與技術勘誤定義的字元編碼表示。

對 wchar_t 的利用如這個示例所示,使用宏確定在 ISO C99 可移植代碼中寫雙引號的方法。

清單 5. 確定寫雙引號的方法

#if __STDC_ISO_10646__
printf("%lc", 0x201c);
#else
putchar('"');
#fi

自己試試吧...

⑹ 關於wchar_t類型的輸出

_TCHAR並不等同於wchar_t,只有程序使用UNICODE時它們才相等。WCHAR才和wchar_t相等。
另外
for(i=0;i<argc;i++)
i應該從1取值。

⑺ TCHAR,CHAR,LPSTR,LPCSTR,char這幾個數據類型有何不同

wchar_t 是雙位元組字元, char 是單位元組字元。 一般來說wchar_t幾乎總是可以取代char(除非這個地方就是需要一個8位的東西)。 當然 wchar_t要比char 多佔用一倍的內存空間。 一般來說vc下編程多半是用 TCHAR 類型, 根據編譯器選項自動define 成 wchar_t 或者 char 。 size_t你就當它是個整數就行了 short int 是16位整數,long int是32位整數 , long long 是64位整數 。 當然根據c流傳下來的規則, int可以不寫(就是說 short 和 short int是一樣的) int的長度跟編譯器有關系, 原則上說int應該是當前平台下處理最快的那種整數類型。 在vc下int是32位整數。

⑻ linux中源代碼包安裝的基本步驟是什麼

詳解linux源碼包安裝過程

1. 解壓縮

可以通過下載或其他方式獲得了一個軟體包,通常它是一個壓縮文件,大部分可能是存檔的和壓縮的,這些文件一般以 .tar .gz為擴展名。

首先拷貝它到一個目錄,然後 untar 和 gunzip 解壓它。 通常這個命令

tar xzvf filename [filename 是軟體文件名稱]

解壓後的文件一般會在當前目錄下的創建子目錄,並以這個包名來命名。 你也可以用用這個命令預先查看結果 tar tzvf filename,顯示包里有那些解壓文件。

源文件如果是新的 bzip2 (.bz2) 格式,可用

bzip2 -cd filename | tar xvf -,或更簡單的 tar xyvf filename ,這很不錯的tar命令被不斷的完善。

說明:

A:有時候一些文件必須安裝在用戶的 home 目錄下,或更多的是在一個固定的目錄,比如 /, /usr/src, 或 /opt 。所以必須仔細閱讀安裝包的配置信息。當一個軟體包里如果有config 和 Makefiles 文件則最好去編輯它,這里包括了安裝指令和說明。提示:你改變 makefile 會導致不同的結果。大部分軟體包允許用 make install 自動處理安置二進制文件在適當的系統位置。

B:你可能碰到過一些共享文件、shell 存檔文件、尤其是 Internet 上的源碼新聞組。它們保留的原因是具有人性化的可讀性,並且允許新聞組緩沖並通過它們篩選和剔除出不合格的。它們可能用 unshar filename.shar 命令來解壓。

C: 一些源碼存檔文件是用非標準的 DOS,Mac 或其他壓縮的比如:

zip, arc, lha, arj, zoo, rar, and shk.

D: 有時候,你可能需要使用一個 patch 或顯示改變了的 diff 文件來升級或修復存檔的源碼文件。這 doc 文件或者 README 文件將告訴你怎麼去使用。一個很好的命令用標准語法來調用的命令是 patch < patchfile.

2: 關於 rpm 安裝包

一些 Linux 用戶懼怕通過使用源碼來手動安裝軟體包,不過現在有方便的 rpm 和 deb 或 新格式的 slp 包。例如:rpm 安裝運行平穩又快,作為一個軟體安裝在某幾個有名的操作系統。

作為方便的RPM包也存在很多不好的缺點,例如:

A: 要了解軟體中更多更詳細的內容你必須去在二進制中去了解,而不是rpm包。

B: 還有安裝一個 rpm 包如果需要依賴關系那麼安裝就可能會導致失敗。

C: 當 rpm 請求你系統中不同版本的庫,那麼安裝將不能繼續,除非你為錯誤的庫位置創建連接符號到正確的位置。

說明:必須使用root 安裝 rpm 和 deb 。因為它需要必須的寫入許可權。

最簡單的,用命令 rpm -i packagename.rpm 和 dpkg --install packagename.deb 會自動解包和安裝。

3:關於安裝 Linux 包出現的一些問題及解決方案

假設 make 失敗有個鏈接錯誤: -lX11: No such file or directory,正好在 xmkmf 之後已被調用,這可能意味著 Imake 不能被完全建立。檢查第一部分 Makefile 文件的的行是這樣:

· LIB= -L/usr/X11/lib
· INCLUDE= -I/usr/X11/include/X11
· LIBS= -lX11 -lc -lm

這個 -L 和 -I 開關告訴編譯器和鏈接分別在哪裡找到 library 和 include 文件。在這個例子里, X11 庫應該在 /usr/X11/lib 目錄,且 X11 包含文件應該在 /usr/X11/include/X11 目錄里。假如對於你的機器上的這個錯誤,請處理修改 Makefile 並重新再 make。

沒有聲明涉及的數學庫函數,像下列各項:
/tmp/cca011551.o(.text 0x11): undefined reference to `cos'

要修復它,需要明確鏈接到匹配的庫,在 Makefile (看先前的例子) 里增加一個 -lm 到 LIB 或 LIBS 標記 。

用其他方法嘗試

仍然失敗 如果失敗,參考下列腳本:
make -DUseInstalled -I/usr/X386/lib/X11/config
這個直接方式的類別相當於。

在少數例子里,用 root 運行 ldconfig 可能會解決:
# ldconfig 更新共享庫鏈接符號。

一些 Makefiles 使用你系統里未被承認的庫別名。一個例子,構建可能需要 libX11.so.6 ,但是在 /usr/X11R6/lib 不存在文件或鏈接。然而,在那裡是 libX11.so.6.1。解決方法是用 root 運行ln -s /usr/X11R6/lib/libX11.so.6.1 /usr/X11R6/lib/libX11.so.6 ,接著需要運行 ldconfig 。
有一些包需要你安裝一個或更多庫的升級版本。需要拷貝一個或更多的庫到適當的目錄里,刪除舊的庫,重新設置動態鏈接庫。
4:一些其他的問題處理

安裝一個shell 腳本如果出現:No such file or directory 的錯誤消息。這是可以檢查文件許可權確定文件事可執行的,並檢查文件頭確定是否 shell 或程序是腳本在指定的位置被調用。一個例子,這個腳本可能是這樣開始的:

#!/usr/local/bin/EDEN

如EDEN的實際安裝位置是在你的 /usr/bin 目錄,用一個 /usr/local/bin 替代

這個腳本不能運行有兩個方法來糾正!!

A: 文件頭改成 #!/usr/bin/EDEN

B: 或增加一個鏈接符, ln -s /usr/bin/EDEN

5:一個典型的例子 Xloadimage

首先說明下面的例子來源於國外網站的一個技術實例,這里我做了翻譯和整理。

這個例子展現一個簡單的問題。xloadimage 程序對我的圖形工具的調整設置是有用的附加。從源碼目錄拷貝文件,用 tar xzvf 解壓文件,可是在運行 make 的時候出現令人討厭的錯誤並停止了。

gcc -c -O -fstrength-rece -finline-functions -fforce-mem

-fforce-addr -DSYSV -I/usr/X11R6/include

-DSYSPATHFILE=\"/usr/lib/X11/Xloadimage\" mcidas.c

In file included from /usr/include/stdlib.h:32,

from image.h:23,

from xloadimage.h:15,

from mcidas.c:7:

/usr/lib/gcc-lib/i486-linux/2.6.3/include/stddef.h:215:

conflicting types for `wchar_t'

/usr/X11R6/include/X11/Xlib.h:74: previous declaration of

`wchar_t'

make[1]: *** [mcidas.o] Error 1

make[1]: Leaving directory

`/home/thegrendel/tst/xloadimage.4.1'

make: *** [default] Error 2

這個錯誤消息包含了實質的線索:

查看 image.h 文件的 23 行:
#include < stdlib.h>
在源碼的某處對於 xloadimage, wchar_t 已經在指定標准 include 文件重新定義。 告訴我們首先在 image.h 的 23 行嘗試注釋它,或許 stdlib.h include 是不存在的,畢竟不是所有都是必需的。

在這點,構建中的收益來源於所有任何一個致命錯誤。xloadimage 現在功能正常。

6: 安裝 Linux 包的一些總結

堅持自己動手處理所有的安裝出現的問題,不斷總結努力學習,從錯誤里去仔細研究,努力動手排錯,從每個不足甚至失敗的地方得到擴充和提升,可以增強安裝構建軟體的技巧。

閱讀全文

與wchartcharlinux相關的資料

熱點內容
msf埠遷移命令 瀏覽:880
工商app積分怎麼查詢 瀏覽:143
鐵路app怎麼買火車票 瀏覽:309
移魅族除的app怎麼添加 瀏覽:240
兔籠子大號加密 瀏覽:171
單片機程序燒錄操作成功 瀏覽:878
指標高拋低吸點位源碼 瀏覽:205
25匹壓縮機銅管 瀏覽:570
單片機單燈左移05 瀏覽:150
買伺服器練手什麼配置 瀏覽:783
伺服器被毀該怎麼辦 瀏覽:939
python私有庫 瀏覽:514
Python有中文嗎 瀏覽:736
麥塊的伺服器為什麼都進不去 瀏覽:474
新買的伺服器如何打開 瀏覽:35
安卓軟體游戲怎麼開發 瀏覽:319
用撲克擺愛心解壓神器怎麼擺 瀏覽:70
松下製冷壓縮機 瀏覽:275
pdf里怎麼修改文字 瀏覽:686
已保存文檔加密如何設置 瀏覽:413