问题标签 [search-path]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
3115 浏览

xcode - 为什么 Xcode 决定不递归搜索标头,尽管构建设置说它应该

我的项目使用我的个人图书馆。在“标题搜索路径”中,我包含了“../WJLibrary/**”。这是我的库的正确相对路径。但是根据构建日志,它没有进行递归搜索。结果,它没有找到我需要的各种文件。

如果我开始一一添加相关子目录,它就会开始在这些特定子目录中查找文件。但这不是管理项目的方法。

对于它的价值,我有一个存档的旧版本的项目,在那个版本中,一切正常。我正在更改图书馆内的一些设置。其中一项更改一定破坏了某些东西。但是对于我的一生,我无法弄清楚是什么导致了它。

这可能是什么原因造成的?

编辑:无论问题是什么,它都不是存储库中的东西,因为更新到旧版本没有帮助。

0 投票
1 回答
643 浏览

cognos - 刚果错误的搜索路径

在刚果...我导航到我的报告文件夹并单击报告。我收到错误消息:内容管理器没有为请求的搜索路径返回对象...而且我看到该路径确实不是当前文件夹。cognos 从哪里得到这个搜索路径?

0 投票
1 回答
770 浏览

binary-tree - 二叉搜索树路径

在二叉搜索树中,如果您沿着某个搜索路径,哪些键被认为在路径的左侧,哪些在右侧?

例如,如果我的树是:

假设我当前的搜索路径是 20->12->15->20。

1) 10 和 14 是否都被认为在此搜索路径的左侧,还是只有 10?

2) 搜索路径右侧是否考虑了所有 3 个数字 30、28 和 32?

0 投票
0 回答
938 浏览

macos - 在自定义目录中安装 Emacs(在 OS X 上)

受够了 Xcode 附带的 emacs22,我开始升级到 emacs24。我不想覆盖系统默认值,也不想弄乱它,所以我尝试将 emacs 安装在/usr/local/.

假设我将前缀设置为CUSTOM_DIR/emacs-24.2. 我在目录中构建并安装了 emacs 24.2 CUSTOM_DIR/emacs-24.2,所以bin/, libexec/, share/,var/都在那里。(是的,我已经手动检查了所有需要的文件;在自定义目录中安装完全完成。)但是当我尝试运行新版本的 emacs 时,我收到以下错误消息:

--prefix=CUSTOM_DIR/emacs-24.2因此,尽管我在运行时指定了选项,但显然 emacs 的搜索路径并未受到影响configure。我该如何解决?有没有我需要更改的配置文件,或者我在配置和构建 emacs 时需要添加一些配置选项?(我从 tarball 构建了 emacs 24.2。)

PS请不要建议其他安装方式。我确实知道如何安装 emacs 24,或者通过安装 to /usr/local/,这似乎完全没有问题;或使用 MacPorts 或类似项目;或者直接从 Emacs.app 二进制发行版中的命令行组件运行。我只是想解决这个问题。谢谢。

0 投票
2 回答
1688 浏览

ios - 双引号在 Xcode 的搜索路径中表示什么?

今晚我们遇到了一个烦人的问题,它只出现在 Xcode 的命令行构建中,而不是来自 Xcode 的 GUI。

当使用 Xcode 的 GUI 和 $PROJROOT 的递归用户标头搜索路径从机器构建时,没有双引号,我们没有遇到任何问题。但是,当使用 Jenkins 构建时,它使用 Xcode 的命令行构建功能,会引发无法找到标头的错误。

经过一个小时的探索,有人决定尝试将递归 $PROJROOT 用双引号 ("$PROJROOT") 括起来。一旦发生这种情况,项目的 Jenkins 命令行构建终于成功了。

所以我们并不完全理解将搜索路径用引号括起来或省略引号的后果。

任何人都可以阐明究竟是什么导致了这个问题?什么双引号从命令行与 GUI 对编译器意味着什么?

0 投票
1 回答
4939 浏览

linux - 如何更改 gcc 在与 /bin/ld 链接时使用的库?

我正在尝试使用从另一个系统重新定位的 gcc 版本来编译某些东西。我知道这有问题,但如果我能让它工作,它会让我的生活更轻松。我已将 /opt/transfer/lib 路径添加到 $LIBRARY_PATH 并且 gcc 似乎看到了这一点(来自 gcc -print-search-dirs)。我还添加了 /opt/transfer/lib 到 /etc/ld.so.conf 虽然我非常喜欢不需要这样做的解决方案。当我执行时出现问题:

g++ -g -m32 chopper.o -Llibs -lRTS -o Chopper /usr/bin/ld: 搜索 /usr/lib/libstdc++.so.6 /usr/ 时跳过不兼容的 /usr/lib/libstdc++.so.6 bin/ld: 找不到 /usr/lib/libstdc++.so.6 /usr/bin/ld: 搜索 /lib/libc.so.6 /usr/bin/ld 时跳过不兼容的 /lib/libc.so.6 : 找不到 /lib/libc.so.6 /usr/bin/ld: 搜索 /usr/lib/libc_nonshared.a 时跳过不兼容的 /usr/lib/libc_nonshared.a /usr/bin/ld: 找不到 /usr /lib/libc_nonshared.a collect2: ld 返回 1 个退出状态

ld 似乎正在 /usr/lib/ 中搜索然后放弃。有一个 /opt/transfer/lib/libstdc++.so.6 文件应该兼容但没有被链接到。如果我运行“gcc -print-file-name=libstdc++.so.6”,它会找到我希望它使用的版本。在这种情况下,有什么方法可以强制 ld 查看另一个目录而不是 /usr/lib 吗?

编辑

我尝试按照 nneonneo 的建议使用 --sysroot 选项,但我不确定它是否有效。这个选项在我的 ld 版本中不可用,所以我使用 --with-sysroot=/opt/transfer 和 --with-build-sysroot=/opt/transfer 重新编译。然后,当我运行时,我将其作为示例输出:

/opt/transfer/bin/ld: 搜索 /usr/lib/libstdc++.so.6 时跳过不兼容的 /usr/lib/libstdc++.so.6 /opt/transfer/bin/ld: 找不到 /usr/lib/ libstdc++.so.6 ld 返回 1 个退出状态

从这个输出来看,我并不是 100% 清楚它正在搜索 /opt/transfer/lib 和 /opt/transfer/usr/lib 目录,因为我相当确定应该存在正确的 libstdc++.so.6 文件. 如果我从 /opt/transfer 中删除这些库,那么它会开始抱怨缺少其他库,因此它显然至少可以部分工作,但是所有这些其他库都只说找不到它们,而对于 libstdc++ 它仍然说它正在跳过一个不兼容的库. libstdc++ 是否有可能被视为特例?是否有另一种选择可以解决这个问题?

编辑 2

我只是将系统的 /usr/libstdc++.so.6 移动到备份位置,并且在这样做之后 ld 将不再说它正在跳过不兼容的版本。这绝对意味着 --sysroot 没有做我在这里所期望的。任何人拥有的任何更多信息将不胜感激。

0 投票
1 回答
423 浏览

r - 将临时命名空间附加到搜索路径

这个问题是这篇文章的后续问题,因为我仍然不完全相信,就代码的健壮性而言,养成打字namespace::foo()习惯而不是仅仅打字foo()并祈祷你得到想要的结果不会好得多; -)

实际问题

我知道这严重违反了“标准 R 约定”,但我只是说我很好奇 ;-)是否可以以某种方式将临时命名空间附加到搜索路径?


动机

在我的包mypkg仍处于“开发阶段”的时候(即还不是真正的 R 包):

  • 我想将我的功能导入环境mypkg而不是.GlobalEnv
  • 然后附加mypkg到搜索路径(如果可能,作为真正的命名空间)
  • 为了能够打电话mypkg::foo()

我完全意识到调用::有其缺点(它比简单地输入函数名称并让 R 隐式处理查找需要更长的时间)和/或可能由于a) R 扫描搜索路径和b的方式而被认为是不必要的)包可以导入它们的依赖项(即使用“Imports”而不是“Depends”,不导出某些函数等)。但是由于某些包已经覆盖了某些(基本)功能,我已经看到我的代码至少崩溃了两次,所以我从“盲目信任”变成了“比抱歉更安全”模式; -)

我试过的

AFAIU,命名空间原则上只不过是某种特殊的环境

还有attach()将对象附加到搜索路径的功能。所以这就是我的想法:

我想我必须以某种方式处理attachNamepace()并弄清楚它在被调用之前会发生什么library()。有任何想法吗?


编辑

关于 Hadley 的评论:我实际上不在乎附加的环境是成熟的命名空间还是只是一个普通的环境,只要我可以扩展:: 同时保持“语法 sugering”功能(即能够调用pkg::foo()而不是"::"(pkg="pkg", name="foo")()) .

这是函数的"::"样子:

pkg如果 R 检测到这实际上不是命名空间,而只是附加到搜索路径的一些环境,这也是它应该能够做的:

它有效,但没有语法糖:

我将如何调用(忽略函数名称非常糟糕pkg::*foo(x=1, y=2)的事实;-))?::*

0 投票
1 回答
298 浏览

compilation - “make”错误:设置编译路径

编译 netCDF 库(并行版)时遇到问题。

特别是问题与我猜的不同路径有关。问题是我不是机器管理员。但是,管理员自己已经在自己的目录(此处:/root/treiber)中安装了旧版本。

Tus 我想在 /home/stephcar/bin 中安装自己的本地版本。

因此,我规定了具有不同编译器标志的目录:

另外:我还将我的 --prefix-path (/home/stephcar/bin/) 也放在 $PATH 和 $LD_LIBRARY_PATH 的第一个位置。

但是,由于某种原因,我无法弄清楚,搜索的是根目录(/root/treiber),而不是我的目录……这是来自“make”的错误:

你有想法吗?我是否设置错误的标志?或者是否有另一个我没有看过的默认路径。如何在模式后的默认路径中搜索(此处:/root/treiber)?也许我可以在这里得到一个提示!

谢谢斯蒂芬

编辑只是为了澄清一下:netCDF 需要另一个库 hdf5,我已成功编译并安装到 ~/bin/lib 中。因此,丢失的 libhdf5_hl.la 也存储在那里。实际问题是我的配置环境没有找到这个目录。相反,它会尝试使用 /root/ 中的那个。

0 投票
2 回答
571 浏览

postgresql - 为表指定架构名称会影响性能吗?

免责声明:这不是为了优化,只是出于好奇。

我想知道这是否:

不知何故快/慢于

或者是否有其他一些暗示可能建议在每个查询中指定(或不指定)模式。

我做了一些(很少)测试,我看不出在速度方面有什么不同。

0 投票
0 回答
226 浏览

delphi - XE3 Build configuration break Grid RowSelect when using "Release" build

我在 XE3 中发现了一个我不确定是我自己造成的问题,我做了一个小应用程序。整个代码是

==========================================

结尾

我将网格选项 dgmultiselect 和 dgrowselect 都设置为 true。

如果我使用调试编译项目,网格会为每个选定的行显示一条完整的蓝线,并允许多个选定的行以蓝色突出显示......这可行。

但是,如果我使用“发布”构建构建,程序的行为非常奇怪,其中选择仅将行勾勒为蓝色,而多选仅返回一行作为所选行数。显然“发布”构建中的某些内容是不同的已经坏了。

我检查了所有路径,直到我脸色发青,但我看不到发生了什么。

Release 和 Debug 中的所有路径看起来都一样,任何人都可以给我一个线索,看看我可能会在哪里看。

如果我构建了一些客户端应用程序,如果使用 Release 构建在 XE3 中编译,它们都会以奇怪的方式中断。

我看不出如何创建一个可在另一台机器上中断的可重现示例,因为我确信这是我的构建配置中的某些设置导致了这种行为。