对于这种情况下的一般故障排除,我建议在系统上查找文件的安装位置(如果您的 build.sh 实际安装了该文件)。您将能够使用找到丢失的头文件
find / -path '*/cds/init.h' 2>/dev/null
然后您需要向 g++ 提供两个参数:
第一个让编译器了解安装目录中的包含文件
-I path_to_folder_one_step_above_cds_folder
第二个让链接器了解库的位置。如果库文件名为 libcds.so,您可以通过运行找到它
find / -name libcds.so 2>/dev/null
因此,对于链接,您提供标志
-L path_to_folder_one_step_above_libcds.so
在您的情况下,您可能不需要 -L 标志,因为您的大部分库应该只是标题。
更新: build.sh 脚本在顶部打印出重要信息,从“使用以下选项构建:”开始。重要的部分将是“编译选项:”和“链接选项:”。这些应该足以解决您的特定选择。
UPDATE2:build.sh 还导出一些可能包含更多选项的标志。您可以在运行 build.sh 后直接打印出来,方法是运行
echo LDFLAGS=$LDFLAGS
echo CFLAGS=$CFLAGS
echo CXXFLAGS=$CXXFLAGS
在编译和链接该库时,您可能需要将所有这些选项传递给 g++。LDFLAGS 仅特定于链接器。编译 c++ 文件需要其他两个。