GB | BIG5
|
| 首頁 > 編程技術 > C/C++ > 正文 |
 |
| 用gcc 編譯,為何有不同的結果 (關socket函數)? |
| 本文出自:http://www.pcworld.com.cn 作者: (2001-08-29 10:00:00) |
---- 我 使 用 的 是Sun 工 作 站, 安 裝 的 是Solaris 7 操 作 系 統。 在 我 使 用gcc 進 行 網 絡 編 程 時,
編 譯 的 時 候 沒 有 出 現 錯 誤 提 示, 但 是 在 編 譯 , 系 統 卻 提 示 我 所 有 的socket 函 數 沒 有
定 義, 因 此 程 序 不 能 運 行, 可 是 我 確 實 在 源 程 序 中 已 經 使 用 了include 語 句 把 應 該 調 用
的 網 絡 庫 全 都 加 進 去 了, 為 什 還 有 問 題 呢 ? 奇 怪 的 是, 同 樣 的 源 程 序, 我 在Linux 6.0
上 編 譯 時 就 可 以 通 過, 說 明 程 序 本 身 沒 有 問 題, 是 否 是 我 的Solaris 7 操 作 系 統 的 問 題 呢 ?
---- 這 並 不 是Solaris 7 的 問 題, 而 是 兩 個 操 作 系 統 之 間 的 差 異 造 成 的。Solaris 7 和Linux 6.0
雖 然 同 屬 Unix 系 統, 但 是 還 是 有 很 大 的 區 別, 就 拿C 編 譯 器gcc 來 說,Solaris 7 的gcc 比
Linux 6.0 上 的gcc 在 語 法 要 求 上 要 嚴 格 得 多, 而 且 在 編 譯 時,Solaris 7 的gcc 要 求 輸 入 庫 文 件,
而Linux 6.0 則 不 用。 您 在Solaris 7 上 遇 到 的 情 況 就 是 因 為 在 編 譯 時, 沒 有 指 明 加 入 應 調 用
的socket 庫, 而 在Linux 6.0 則 會 自 動 加 入, 不 需 您 設 置, 所 以 可 以 編 譯 通 過。 就 這 一 點 來 說,
Linux 6.0 的gcc 要 方 便 一 些。 如 果 是 在Solaris 7 上 編 譯, 應 該 在gcc 面 加 入"-lsocket" 的 選 項。
注 意"-l" 和"socket" 中 間 沒 有 空 格。 如 果 在 編 譯 時 還 提 示 有 某 些 函 數 沒 有 定 義, 則 應 再 加
入"-lnsl" 選 項。 比 如, 假 設 您 的 源 程 序 名 為test.c, 則 在 編 譯 時 應 輸 入 如 下 的 命 令:
---- gcc -lsocket -lnsl test.c
---- 這 樣 程 序 就 可 以 在Solaris 7 編 譯 通 過 了。
(http://www.fanqiang.com)
進入【UNIX論壇】
|
|
| 相關文章 |
關gcc/egcs/pgcc (2002-01-29 20:22:21) 用gcc 編譯,為何有不同的結果 (關socket函數)? (2001-08-29 10:00:00) 在Solaris系統中安裝GCC編譯器 (2001-06-25 18:08:00) GCC HOWTO中譯版V0.2 --- 8. 與發展人士聯絡,9. 結語 (2001-06-22 13:04:00) GCC HOWTO中譯版V0.2 --- 7. 動態載入 (2001-06-22 12:10:01) GCC HOWTO中譯版V0.2 --- 6. 連結 (2001-06-22 11:00:00) GCC HOWTO中譯版V0.2 --- 5. 除錯與監管 (2001-06-22 10:08:00) GCC HOWTO中譯版V0.2 --- 4. 移植程式與編譯程式 (2001-06-22 09:04:00) GCC HOWTO中譯版V0.2 --- 3. GCC的安裝與GCC的設定 (2001-06-22 08:10:00) GCC HOWTO中譯版V0.2 --- 2. 東東在哪兒? (2001-06-22 07:00:00)
|
===更多相關=== |
|
|
 |
★ 樊強制作 歡迎分享 ★ |