客户端代码在widows上编译,除了protobuf找不到目录,其他的基本没有什么问题。
然后打开虚拟机,项目文件已经在/home/projects目录下了
进入项目文件,对代码进行编译
第一次
// 找不到protobuf
g++ *.cpp *.cc -ljson -lpthread -lprotobuf -lcrypto -locci -lclntsh -std=c++11
第一次编译,找不到protobuf的google文件夹
这个文件夹我安装的时候,是放在了
/usr/local/protobuf/include
然后我去调整了下protobuf的位置,最终protobuf的部署,参考下面的文章
第二次
指定路径
g++ *.cpp *.cc -ljson -lpthread -lprotobuf -lcrypto -L/usr/local/protobuf/include -locci -lclntsh -std=c++11
通常在软件编译时出现的usr/bin/ld: cannot find -lxxx的错误,主要的原因是库文件并没有导入的ld检索目录中。
1。确认库文件是否存在,比如-l123, 在/usr/lib, /usr/local/lib,或者其他自定义的lib下有无lib123.so, 如果只是存在lib123.so.1,
那么可以通过ln -sv lib123.so.1 lib123.so,建立一个连接重建lib123.so.
2。检查/etc/ld.so.conf中的库文件路径是否正确,如果库文件不是使用系统路径,/usr/lib, /usr/local/lib, 那么必须在文件中加入。
3。ldconfig 重建ld.so.cache文件,ld的库文件检索目录存放文件。尤其刚刚编译安装的软件,必须运行ldconfig,才能将新安装的
库文件导入ld.so.cache.
测试,gcc -l123 --verbose.
g++ *.cpp *.cc -L/usr/include/json -lpthread -lprotobuf -lcrypto -L/usr/local/protobuf/include -locci -lclntsh -std=c++11
g++ *.cpp *.cc -L/usr/include/json -lpthread -lcrypto -L/usr/local/protobuf/include -locci -lclntsh -std=c++11
g++ *.cpp *.cc -lpthread -lcrypto -L/usr/local/protobuf/include -locci -lclntsh -std=c++11