标签: target

GNU Make中通配符目标的正确方法

我试图编写一个Makefile与我的源文件和目标文件分开,我似乎无法找到实现这一目标的正确方法.我有两种方法可行,但我希望有人可以指出"正确"的方法来做到这一点.

我的项目被分成一个srcobj文件夹,Makefile与这些文件处于同一级别.

第一种方法使用通配符函数查找源文件,src然后使用文本替换来确定相应的目标文件.

SRC = $(wildcard src/*.cpp)
OBJ = $(SRC:.cpp=.o)

prog: $(OBJ)
       $(CC) $(CFLAGS) $(LDFLAGS) $(LIBS) -o prog $(patsubst src/,obj/,$(OBJ))

%.o: %.cpp
     $(CC) $(CFLAGS) -c $< -o $(COMPILE)/$(@F)  
Run Code Online (Sandbox Code Playgroud)

这似乎有效,但是,每次运行make prog它都会重新编译所有目标文件.该OBJ变量必须具有src/的所有对象的前面,否则我得到了"没有规则,使目标".从好的方面来说,我可以轻松地使用prog 目标中的patsubst 来指定目标文件.

第二种方法类似,但在OBJ变量上使用vpath和文本替换:

 vpath = %.cpp src
 vpath = %.o obj

 SRC = $(wildcard src/*.cpp)
 OBJ = $(subst src/,,$(SRC:.cpp=.o))
 POBJ = $(patsubst src/,obj/$(SRC:.cpp=.o))

 prog: $(OBJ)
       $(CC) $(CFLAGS) $(LDFLAGS) $(LIBS) -o prog $(POBJ)

 %.o: %.cpp
     $(CC) …
Run Code Online (Sandbox Code Playgroud)

makefile wildcard gnu-make target

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

使用window.name在同一选项卡中打开电子邮件中的链接

我正在开发一个网站,用户可以在此网站上更改必须确认的设置才能生效.

确认是通过我通过电子邮件发送的链接完成的.在网站的HTML中我使用这个小片段:

<script type="text/javascript">window.name="mysite";</script>
Run Code Online (Sandbox Code Playgroud)

在我使用的HTML电子邮件中

<a href="..." target="mysite">Click me</a>
Run Code Online (Sandbox Code Playgroud)

但Chrome总是打开新标签,而不是一次性打开它们.

这是偶数还是由于某些原因被禁止?

html hyperlink target

19
推荐指数
2
解决办法
2113
查看次数

制作wildcard子目录

我的应用程序主目录中有一个"lib"目录,它包含任意数量的子目录,每个子目录都有自己的Makefile.

我想在主目录中有一个Makefile,它调用每个子目录的Makefile.我知道如果我手动列出子目录这是可能的,但我想自动完成它.

我在想类似下面的东西,但它显然不起作用.请注意,我也有干净,测试等目标,所以%可能根本不是一个好主意.

LIBS=lib/*

all: $(LIBS)

%:
  (cd $@; $(MAKE))
Run Code Online (Sandbox Code Playgroud)

任何帮助表示赞赏!

makefile wildcard target subdirectory

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

调用方法设置为UIButton上的目标

如果我有一个具有目标集的UIButton,有没有办法调用此方法而不显式调用它?

例如:

[newViewController.button addTarget:self action:@selector(MyMethod) forControlEvents:UIControlEventTouchUpInside];
Run Code Online (Sandbox Code Playgroud)

我正在寻找调用此方法,newViewController但不能MyMethod属于父视图.所以我真的希望能够说,只需在UIButton按钮上调用方法/目标.但是我怎么能这样做呢?

谢谢

iphone methods objective-c target uibutton

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

学习和理解Xcode构建系统

好吧,我很好奇Xcode的构建过程.设置多个目标,如何自动化版本控制和一般理解系统,以便我可以操纵它来做我想要的.

有没有人有任何书籍或可以指向我某处的某些文件,以便我能解决所有这些问题?

万分感谢.

另一件事,如果有人真的看到这个,因为改变它.

但任何人都知道的任何书籍都会关注Xcode 4吗?有Xcode 3 Unleashed,但如果有任何书籍专注于Xcode 4,我真的很好奇.

xcode automation build target

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

Xcode 13 应用程序项目以文本形式打开,而不是项目设置编辑器

从 Xcode 12 升级到 13 后,当我打开包含多个应用程序项目的 Xcode 工作区并在导航器视图中单击/选择一个项目时,Xcode 会将该项目作为文本文件而不是项目设置视图(具有多个选项卡和目标定义)。

顺便说一句,当我在导航器中选择 .plist 文件时,会发生类似的问题 - 它以 xml 文本文件打开,而不是像属性列表编辑器电子表格视图一样打开。

有什么办法可以解决吗?

xcode editor target project-settings

18
推荐指数
2
解决办法
2122
查看次数

如何获得当前目标蚂蚁的值?

如何获得当前目标蚂蚁的值?

它是否存在一个名为TARGET的特殊变量?

ant target

17
推荐指数
3
解决办法
9801
查看次数

Makefile - 仅在文件不存在时才创建依赖项

就像标题所说的那样,我想只在某个文件不存在的情况下才会产生依赖关系,而不是每次都更新时.

我有一个根目录(带有makefile的目录),在其中有一个名为"example"的子目录.在我的根目录中有四个.h文件(functions.h,parser.h,node.h和exception.h),如果那些.h文件还不存在,我想复制到"example"子目录在"例子"中.

不幸的是,我不能只是在"示例"中创建标准依赖项来检查头文件,因为每次我将头文件从root复制到"example"时,"example"中的头文件将被视为已更新并将触发该依赖项每次我跑的时候.我希望有一种方法可以让我的makefile将头文件从根目录复制到"example",只要它们在"example"中不存在.

dependencies makefile target file-exists

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

如何从 JavaScript 代理中获取数组

我想知道如何从 JavaScript 中的代理目标值中获取数组。我有这样的东西:

Proxy :
  [[target]] : Array // the array I need to extract
  [[handler]] : Object 
  [[IsRevoked]] : false
Run Code Online (Sandbox Code Playgroud)

javascript arrays target es6-proxy

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

检测运行目标是App Extension还是iOS App

我有一个简单的应用程序,它也有iOS 8今日扩展(或小部件).我正在做的一件事是在我的应用程序和我的小部件之间共享代码类,因为这显然使我不必拥有相同代码的多个副本.除了我遇到的一个问题之外,这一切都很UIApplication sharedApplication好用,其中一个API 会出现错误,因为你无法在iOS 8 Widgets上使用它.

所以我想到的是,有一个简单的if语句,用于检查最终目标是否是本机应用程序,或者如果它是iOS 8小部件,然后根据需要添加代码.那会有用吗?

这是我的代码:

if (UIInterfaceOrientationIsLandscape([[UIApplication sharedApplication] statusBarOrientation]))
    {
        CGSize ssz = sz;
        sz = CGSizeMake(ssz.height, ssz.width);
    }
Run Code Online (Sandbox Code Playgroud)

如何更改此代码,以便可以执行以下操作之一:

  1. 仅运行/编译,如果最终目标是本机iOS应用程序而不是小部件.
  2. 或者检查目标平台上的API是否可用,如果是,则使用它?

我希望我的问题有道理,感谢你的时间,丹.

objective-c target ios ios-app-extension ios8-today-widget

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