protobuf
2.5已經被安裝(經由brew
),並且是在路徑:如何在mac上爲google protobuf設置LD_LIBRARY_PATH(也可能是DYLD_)?
$which protoc
/usr/local/opt/[email protected]/bin/protoc
當編譯(caffe
)它沒有被發現:這可能是由於庫路徑設置。
ld: library not found for -lprotobuf
clang: error: linker command failed with exit code 1 (use -v to see invocation)
make[1]: *** [.build_release/lib/libcaffe.so.1.0.0-rc3] Error 1
哪些環境變量需要更新?我的
LD_LIBRARY_PATH
DYLD_LIBRARY_PATH
LIBRARY_PATH
其組合中目前還不清楚被要求
另外:是以下路徑/usr/local/Cellar/[email protected]/2.5.0/lib
正確使用?
$ll /usr/local/Cellar/[email protected]/2.5.0/lib
total 12392
-r--r--r-- 1 boescst admin 1120832 Feb 26 2013 libprotoc.a
-r--r--r-- 1 boescst admin 1536576 Feb 26 2013 libprotobuf.a
-r--r--r-- 1 boescst admin 215672 Feb 26 2013 libprotobuf-lite.a
drwxr-xr-x 12 boescst admin 408 Feb 26 2013 .
drwxr-xr-x 4 boescst admin 136 Mar 12 11:46 pkgconfig
-r--r--r-- 1 boescst admin 659108 Mar 12 11:46 libprotoc.dylib
-r--r--r-- 1 boescst admin 659108 Mar 12 11:46 libprotoc.8.dylib
-r--r--r-- 1 boescst admin 930424 Mar 12 11:46 libprotobuf.dylib
-r--r--r-- 1 boescst admin 930424 Mar 12 11:46 libprotobuf.8.dylib
-r--r--r-- 1 boescst admin 138008 Mar 12 11:46 libprotobuf-lite.dylib
-r--r--r-- 1 boescst admin 138008 Mar 12 11:46 libprotobuf-lite.8.dylib
drwxr-xr-x 11 boescst admin 374 Mar 12 11:46 ..
最後:我需要做的是目錄內的任何符號鏈接 - 使調用程序(caffe
在我的情況)能夠找到庫?
包括的庫顯示在Makefile
像這樣:
INCLUDE_DIRS += $(BLAS_INCLUDE)
LIBRARY_DIRS += $(BLAS_LIB)
LIBRARY_DIRS += /usr/local/Cellar/[email protected]/2.5.0/lib
LDFLAGS += $(foreach librarydir,$(LIBRARY_DIRS),-L$(librarydir)) $(PKG_CONFIG)
$(foreach library,$(LIBRARIES),-l$(library))
所以有一種方法打印出這些庫 - 不訴諸make -d
生成265K行?
這看起來像一個編譯器鏈接器錯誤,而不是缺少的運行路徑;你可能想在你的問題中包含編譯命令。通常你會做類似於'-L/path/to/lib -lprotobuf'的東西... –
@ l'l l謝謝!我將添加 – javadba
@ l'L'L更新OP:不清楚如何顯示從'Makefile'指令包含的庫 – javadba