小编4ae*_*1e1的帖子

C++:让Boost工作; 关于包含路径和链接库的问题

我试图使用Boost.Tokenizer库.在我PROG.cpp,我有以下内容:

#include <boost/tokenizer.hpp>
Run Code Online (Sandbox Code Playgroud)

而我Makefile最初是这样的

CXX = g++-4.8
CXXFLAGS = ## some irrelevant flags
LDFLAGS = ## some irrelevant flags
SOURCES = PROG.cpp
OBJECTS = $(SOURCES:.cpp=.o)
TARGETS = PROG

$(TARGETS) : $(OBJECTS)
        $(CXX) $(CXXFLAGS) -o $@ $^ $(LDFLAGS)

## other targets
Run Code Online (Sandbox Code Playgroud)

它无法编译,因为boost/tokenizer.hpp无法找到:

fatal error: boost/tokenizer.hpp: No such file or directory
Run Code Online (Sandbox Code Playgroud)

然后我手动添加了boost include路径CXXFLAGS:

-I/opt/local/include/
Run Code Online (Sandbox Code Playgroud)

(这是MacPorts的路径.)

然后我试图包括标记生成器库,但在/opt/local/lib/libboost_atomic-mt.dylib,libboost_chrono-mt.dylib等等,但没有像tokenizer.那个时候我很困惑.我认为由于图书馆没有被链接,所以仍然无法工作.令人惊讶的是,该程序的构建,链接和运行完美.

所以我现在真的很困惑.以下是一些问题:

(1)我没有明确地链接到boost,所以boost被链接器视为标准库?

(2)如果将boost视为标准处理,为什么标题不是标准的?

(3)为什么有libboost_atomic-mt.dylib,libboost_chrono-mt.dylib等,但不tokenizer?哪个动态库 …

c++ linker boost include

2
推荐指数
1
解决办法
1万
查看次数

posix shell 脚本:递归删除以特定前缀开头的所有文件

我想使用 shell 脚本来递归删除某个目录中以前缀._(匹配模式._*)开头的所有文件,但令人尴尬的是,除了非常基本的之外,我几乎对 shell 脚本一无所知。有没有好心人帮我写一篇?谢谢。

unix shell

2
推荐指数
1
解决办法
1307
查看次数

是否可以更改 gcc *默认* 库搜索路径?

我知道我可以通过设置LD_LIBRARY_PATH等修改库搜索路径,但这种方法有时很蹩脚。我真的很想/usr/local/lib默认路径中使用它,但不幸的是,这在 GNU/Linux 中似乎不是默认路径。(我之前遇到过很多问题/usr/local/lib,安装相同的库可以/usr/lib解决这些问题。但我真的不想搞乱/usr/lib。)

那么,是否可以一劳永逸地修改默认库路径呢?谢谢。

linux gcc path

2
推荐指数
1
解决办法
5939
查看次数

ZSH - 如何使用冒号“:”字符/转义冒号字符加入数组?

我不知道在使用 zsh j:string:数组扩展序列时如何转义冒号。

在我的 ~/.zshrc 中,我发现将 PATH 构建为数组是令人愉快的。

path_array=(
  /sbin
  /usr/sbin
  $HOME/brew/bin
  /bin
  /usr/bin
  /usr/local/bin
  /opt/X11/bin
)

#https://unix.stackexchange.com/questions/23208/building-paths-robustly/23241#23241
#export PATH=${(j:::)path_array}
Run Code Online (Sandbox Code Playgroud)

有很多关于如何在其他字符上连接数组的示例,但不幸的是我看不到如何转义字符“:”,因此我可以按此顺序使用它。

结果是:zsh: error in flags

使用另一个字符('|')它工作正常

echo ${(j:|:)path_array}

/sbin|/usr/sbin|/Users/mf/brew/bin|/bin|/usr/bin|/usr/local/bin|/opt/X11/bin
Run Code Online (Sandbox Code Playgroud)

zsh

2
推荐指数
1
解决办法
1307
查看次数

Shebang选项'#!/ bin/csh -f'

Shebang选项-f有什么作用?我如何找到或解释所有Shebang选项的详细解释?

#! /bin/csh -f
Run Code Online (Sandbox Code Playgroud)

linux shell csh shebang

1
推荐指数
1
解决办法
4086
查看次数

在开发环境中始终使用"root"用户是一种好习惯吗?

在Linux环境中进行软件开发时有三种选择:

  1. 使用您自己的用户(例如mahdi)
  2. 使用root
  3. 没人用

我通常将我的所有开发都视为"根",但这是最佳实践吗?

linux sudo development-environment root

1
推荐指数
1
解决办法
531
查看次数

标签 统计

linux ×3

shell ×2

boost ×1

c++ ×1

csh ×1

development-environment ×1

gcc ×1

include ×1

linker ×1

path ×1

root ×1

shebang ×1

sudo ×1

unix ×1

zsh ×1