[問題] 大程式架構 src include bin lib等資料 …

看板C_and_CPP作者 (ads901119)時間14年前 (2009/12/07 20:33), 編輯推噓1(1024)
留言25則, 6人參與, 最新討論串1/1
遇到的問題: (題意請描述清楚) 因為課程需要的緣故,我必須使用學長提供的library, 但這是我第一次使用別人提供的lib,他的檔案架構如下 +include | libpa.h | pa_utility.h | +lib | libpa.a | +src | libpa.cpp | pa_utility.cpp | padump.cpp | painfo.cpp | +bin | painfo (執行檔) | Makefile 請問如果我今天要使用定義在libpa.h裡面的一個function "writeToFile" 我的testpa.cpp檔該怎麼include呢, 我試過 #include "libpa.h" 然後compile時寫 g++ testpa.cpp -o testpa -I ./include/ -L ./lib -lpa 但還是error " 'writeToFile' was not declared in this scope " 那請問要怎麼compile(-I -L參數??),或寫makefile呢? 懇請各位高手相助,謝謝。 或者提供相關資源,哪裡可以學到怎麼建立這種有src, include, lib等資料夾的程式 開發平台: Linux -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.112.252.248 ※ 編輯: sa901119 來自: 140.112.252.248 (12/07 20:33)

12/07 20:37, , 1F
你的程式與他的程式的目錄關係?
12/07 20:37, 1F

12/07 20:39, , 2F
我的程式只有一行 wirteToFile("filename");
12/07 20:39, 2F

12/07 20:40, , 3F
目的是使用他定義在libpa.h裡面的這個函式
12/07 20:40, 3F

12/07 20:40, , 4F
如果我把我的程式放在這整個目錄下
12/07 20:40, 4F

12/07 20:41, , 5F
就是放在上面架構的Makefile旁邊的話??
12/07 20:41, 5F

12/07 21:08, , 6F
C/C++ 的大前提,就是識別字在使用前必須先宣告,你必須要
12/07 21:08, 6F

12/07 21:08, , 7F
確實 include 到有宣告 writeToFile 是什麼東西的 header
12/07 21:08, 7F

12/07 21:08, , 8F
檔,再來 g++ 的 -I 跟 -L 後面跟的 path 應該是連著的。
12/07 21:08, 8F

12/07 21:11, , 9F
如 -Idir 和 -Ldir,中間沒有空格,我也不曉得現在可不可
12/07 21:11, 9F

12/07 21:11, , 10F
以有空格 (有點懶得去試)。
12/07 21:11, 10F

12/07 21:23, , 11F
我把空格去掉了還是不行
12/07 21:23, 11F

12/07 21:24, , 12F
g++: -lpa: linker input file unused because linking
12/07 21:24, 12F

12/07 21:24, , 13F
not done
12/07 21:24, 13F

12/07 21:24, , 14F
我加了 -lpa 來compile之後出現上面那句
12/07 21:24, 14F

12/07 21:25, , 15F
但不加 -lpa 則會出現
12/07 21:25, 15F

12/07 21:25, , 16F
undefined reference to `C_PA::C_PA(char const*)' 等行
12/07 21:25, 16F

12/08 00:29, , 17F
試試 g++ testpa.cpp -o testpa -I ./include/ lib/libpa
12/08 00:29, 17F

12/08 00:31, , 18F
g++ testpa.cpp -o testpa -Iinclude lib/libpa.a
12/08 00:31, 18F

12/08 07:25, , 19F
去掉空格,參數位置放對,還是錯的話,就是其它問題。
12/08 07:25, 19F

12/08 07:27, , 20F
^還有
12/08 07:27, 20F

12/08 10:37, , 21F
空格是沒差的, 不僅是 -I, -L, -lpa 也可寫成 -l pa
12/08 10:37, 21F

12/08 10:52, , 22F
-I -L 這些東西不都是要在 -o 之前嗎? @@" 還是沒這規定?
12/08 10:52, 22F

12/08 15:13, , 23F
不然先編成obj再弄成bin吧
12/08 15:13, 23F

12/10 03:47, , 24F
謝謝各位 真正的問題好像是那些library的.cpp也要一起編
12/10 03:47, 24F

12/10 03:48, , 25F
不然.h檔只有定義 他不知道怎麼implement
12/10 03:48, 25F
文章代碼(AID): #1B7FODJH (C_and_CPP)