.bashrc / .bash_profile không tải xuất


0

Tôi đang cố gắng biên dịch mã và để nó hoạt động, tôi cần chạy dòng sau trước khi biên dịch:

export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig

Sau đó, mã biên dịch bình thường, tôi đang cố gắng thêm mã này để tôi không cần chạy dòng này mỗi khi khởi động lại PC. Tôi đã thử thêm dòng đó vào .bashrctệp (đường dẫn tệp có cần trích dẫn không?) Dường như không hoạt động. Tôi cũng đã thử tạo một .bash_profiletệp thêm dòng trong đó nhưng một lần nữa điều này dường như không hoạt động.

Bất cứ khi nào tôi cố gắng biên dịch sau khi thêm .bash_profiletôi sẽ gặp lỗi sau:

./makeScript: line 1: pkg-config: command not found



Dòng đầu tiên của : makeScript?
kenorb

g++ -std=c++11 $1 -o $2 `pkg-config --cflags --libs opencv` Tôi đã cố gắng loại bỏ dấu gạch nối là dòng đó là không có hiệu lực.
Colin747

Câu trả lời:


0

Nó sẽ hoạt động nếu bạn thêm nó vào ~/.bashrchoặc ~/.bash_profile.

Nếu điều này không hoạt động, hãy đảm bảo rằng tập lệnh của bạn thực sự sử dụng bashshell ( shebang ), như thể bạn đang sử dụng shell khác, có thể nó sẽ không được tải.

Tuy nhiên tôi nghĩ vấn đề của bạn không liên quan đến PKG_CONFIG_PATH, nhưng PATHbiến không chứa đúng thư mục chứa pkg-confignhị phân thực thi.

Kiểm tra bởi:

$ which pkg-config
/usr/local/bin/pkg-config

Nếu bạn không thể tìm thấy nó, hãy đảm bảo bạn đã cài đặt nó và liên kết nó, ví dụ như sử dụng Homebrew :

brew install pkg-config; brew link pkg-config

Và bạn /usr/local/binđang ở trong bạn PATH, vd

export PATH=/usr/local/sbin:/usr/local/bin:$PATH

Là một lưu ý phụ, bạn có thể kiểm tra các biến xuất của mình bằng cách chạy setlệnh ngay trước khi liên kết bị lỗi.

Một điều khác để theo dõi vấn đề là gỡ lỗi các tập lệnh của bạn bằng cách chạy như: bash -x ./makeScripthoặc thêm -xvào cuối shebang của bạn (ví dụ #!/bin/bash -x).


0

Lấy ~/.profile:

$ cat >> ~/.profile << EOF
> PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/local/lib/pkgconfig
> EOF

Tải các thay đổi (nếu bạn không muốn khởi động lại):

$ source ~/.profile

Kiểm tra:

$ echo $PKG_CONFIG_PATH
/usr/local/lib/pkgconfig

Điều đó dẫn đến lỗi pkg-config: command not foundkhi tôi cố gắng biên dịch.
Colin747

Có thể gõ sai? Bạn có một lần dấu gạch ngang và một lần không
h0ch5tr4355

echo $PKG_CONFIG_PATHKết quả /usr/local/lib/pkgconfig, điều đó có đúng không?
Colin747

Có khi đó là lệnh bình thường cho cấu hình của bạn. nếu pkgconfig hoàn toàn không tồn tại, câu trả lời là vô ích. Trong kịch bản oyur bạn dường như gọi pkg-configmặc dù biến của bạn điều hướng đến pkgconfig; thiếu dấu gạch nối
h0ch5tr4355

Tôi đã thêm vào dấu gạch nối và nhận được lỗi pkg-config: command not found. echo $PKG_CONFIG_PATH /usr/local/lib/pkg-config.
Colin747
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.