Bagaimana cara menyertakan jalur ke perpustakaan di g ++

96

Saya mencoba untuk memasukkan path ke perpustakaan tambahan di makefile saya, tetapi saya tidak tahu bagaimana membuat kompiler menggunakan jalur itu. sejauh ini saya punya:

g++ -g -Wall testing.cpp fileparameters.cpp main.cpp -o test

dan saya ingin menyertakan jalur ke

/data[...]/lib

karena testing.cpp menyertakan file dari perpustakaan itu. Juga, saya menggunakan mesin linux.

EDIT: Bukan jalur ke perpustakaan. Hanya untuk file yang disertakan. Salahku.

mrswmmr
sumber

Jawaban:

168

Untuk menentukan direktori untuk mencari perpustakaan (biner), Anda cukup menggunakan -L:

-L/data[...]/lib

Untuk menentukan nama perpustakaan sebenarnya, Anda menggunakan -l:

-lfoo  # (links libfoo.a or libfoo.so)

Untuk menentukan direktori untuk mencari file yang disertakan (berbeda dari perpustakaan!) Anda menggunakan -I:

-I/data[...]/lib

Jadi saya pikir apa yang Anda inginkan adalah sesuatu seperti itu

g++ -g -Wall -I/data[...]/lib testing.cpp fileparameters.cpp main.cpp -o test
Ernest Friedman-Hill
sumber
4
Pada dasarnya suatu tempat sebelum dibutuhkan; itu -Iharus diletakkan sebelum nama file .cpp, misalnya.
Ernest Friedman-Hill
1
Apakah mungkin untuk membuat compiler figuure itu keluar, seperti menambahkan perpustakaan ke variabel sistem?
Fred
5
@Fred, ya, g ++ memahami sejumlah besar variabel lingkungan yang dapat digunakan untuk mengontrol jalur penyertaan, jalur perpustakaan, dll.
Ernest Friedman-Hill
1
apa perbedaan antara -L dan -I (kapital i, bukan L bawah)?
Youda008
1
@ Youda008 Capital ell: jalur pencarian untuk perpustakaan. Mata kapital: jalur pencarian untuk file yang disertakan. Small el: nama perpustakaan untuk ditautkan.
Ernest Friedman-Hill
1

Di MakeFile atau CMakeLists.txt, Anda dapat menyetel CMAKE_CXX_FLAGS seperti di bawah ini:

set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -I/path/to/your/folder")
Kartik Javali
sumber