[英]Compiling C files along with C++ file in g++
我有一個我創建的自定義 C header 文件。 我的目錄中有幾個文件如下。
lib1/
-lib1.h
-lib1.c
lib2/
-lib2.h
-lib2.c
-lib_main.c
-lib_main.h
-main.c
-main.cpp
-Makefile
現在,為了使用名為 main.c 的測試文件測試 header 文件,我將在終端中給出以下命令,
gcc lib_main.c lib1/lib1.c lib2/lib2.c main.c -o ./main
現在,我如何使用 main.cpp 而不是 main.c 測試相同的 header 文件,我該如何更改它?
您應該(並且很可能必須)將 c 和 c++ 源代碼分別編譯到 object 文件中,然后鏈接在一起。
舉個例子
gcc -c -o lib1.o lib1/lib1.c
gcc -c -o lib2.o lib2/lib1.c
gcc -c -o lib_main.o lib_main.c
g++ -c -o main.o main.cpp
g++ -o main lib1.o lib2.o lib_main.o main.o
前四個命令創建一系列 object 文件,擴展名為.o。 最后一個命令將 object 文件鏈接到一個可執行文件中。 顯然,您需要為每個源添加相關的編譯器選項。
需要注意的兩個重要點:
To mix c and c++ code with each other, for example if a c++ code calls a c function, you need to follow specific guidelines .
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.