【发布时间】:2019-12-12 15:52:03
【问题描述】:
我有两个项目:mylib 和 myproj mylib 编译成一个共享对象。 myproj 使用 mylib。 我使用以下链接 myproj:
g++ -L../../mylib/Release myproj.o -lmylib
这在我的开发机器上运行良好。
在另一台机器上,mylib.so 位于 /usr/local/lib。因此不需要-L。 没有 -L 也能正常编译。
但是,一旦我使用相同的命令(使用 -L)编译它,它就会响应
g++:错误:../../mylib/Release:没有这样的文件或目录
我希望 myproj 在两台机器上使用相同的命令进行编译。 有没有办法让它忽略不存在的目录?
它似乎并不关心完整路径是否不存在,它只抱怨相对路径。
【问题讨论】:
-
你在另一台机器上使用的是什么 g++ 版本?我以这个命令为例:
g++ -L../../foo/bar main.o -lpthread,即使 foo/bar 目录不存在,它也可以正确链接