今天在写V8的demo时出现了一个问题,根据V8 document的命令:
g++ -Iinclude hello_world.cpp -o hello_world libv8.a -lpthread
无法编译和链接成功,试了半天,搞清楚了些东西。
编译时
-I:告诉编译器在指定文件夹搜索头文件
-L:告诉链接器在指定文件夹中搜索库文件
-lxxx:会解析成libxxx.so
编译后
ldd xxx:查看可执行文件的动态文件依赖
ldconfig:可查看当前环境可找到的库文件
为让编译后的文件能找到动态库文件,有如下方法可以做到:
1.将库文件libxxx.so拷贝到/usr/lib 或 /lib 或 /usr/local/lib下,默认情况,系统从这几个地方寻找库文件。
2. export LD_LIBRARY_PATH=/apps/src/demo/ 如果有多条路径,用“:”分割。
3. 将库文件的路径添加到/etc/ld.so.conf.d/中去,然后执行ldconfig。
4.编译时指定动态库的绝对路径。
本文介绍了解决 V8 编译过程中遇到的问题,包括如何正确使用 g++ 命令进行编译和链接,解释了 -I、-L 和 -l 参数的作用,并提供了确保动态库文件能被正确加载的方法。

230

被折叠的 条评论
为什么被折叠?



