我已经构建了一个静态库,它大量使用了Core Data框架.我可以在我的外部项目中成功使用该库,但仅限于我在主项目中包含.xcdatamodel文件.这不太理想,因为库的要点是尽可能隐藏实现细节.
在一个单独的问题中,我被告知我无法将资源与库捆绑在一起(这对我来说完全合情合理).
那么有没有办法以编程方式允许模型被"发现",而不必将模型包含在主项目中?
我刚刚使用VS2008在64位Windows机器上构建了libpng.它libpng.lib在\ projects\visualc71\Win32_Lib_Release目录中生成一个文件(配置使用的是"LIB Release").
我曾经dumpbin检查过这个LIB文件:
C:\Temp\libpng-1.4.3>dumpbin projects\visualc71\Win32_LIB_Release\libpng.lib
Microsoft (R) COFF/PE Dumper Version 9.00.30729.01
Copyright (C) Microsoft Corporation. All rights reserved.
Dump of file projects\visualc71\Win32_LIB_Release\libpng.lib
File Type: LIBRARY
Summary
8E4 .debug$S
DF2 .drectve
2BCD .rdata
21165 .text
C:\Temp\libpng-1.4.3>
Run Code Online (Sandbox Code Playgroud)
但是它没有显示LIB文件的体系结构.如何查找给定的LIB文件是为32位还是64位架构构建的?
是否可以将资源构建到静态库中,并通过简单地链接到库来重用它们?
我主要考虑的是你在库中调用一个函数然后访问资源的情况.
在AppDelegate中,我正在分配静态库中定义的实例.此实例的NSString属性设置为"copy".当我访问此实例上的字符串属性时,应用程序崩溃,"无法识别的选择器发送到实例".Xcode为属性提供代码提示,这意味着它在调用应用程序中是已知的.特定类被编译到静态库目标中.我错过了什么?
添加一些代码.
//static library
//ClassA.h
@interface ClassA : NSObject {
...
NSString *downloadUrl;
}
@property(nonatomic, copy) NSString *downloadUrl;
//ClassA.m
@synthesize downloadUrl;
Run Code Online (Sandbox Code Playgroud)
在调用应用程序的appDelegate中.
//app delegate header file
@interface myApp : NSObject <UIApplicationDelegate> {
ClassA *classA;
}
@property (nonatomic, retain) ClassA *classA;
//app delegate .m file
@synthesize classA;
- (void)applicationDidFinishLaunching:(UIApplication *)application {
classA = [[ClassA alloc] init];
//exception occurs here. downloadUrl is of type NSCFNumber
classA.downloadUrl = @"http://www.abc.com/";
...}
Run Code Online (Sandbox Code Playgroud)
应用程序中的其他类将获得对委托的引用并调用classA.downloadUrl.
iphone cocoa-touch memory-management objective-c static-libraries
我有一段时间寻找文档,清楚地解释了如何在Qt Creator中使用静态库.
我使用Qt Creator创建并编译了我的静态库(New => Projects\C++ Library => Set type to"Statically Linked Library").它编译并吐出一个".a文件".
我遇到的问题是当我尝试使用该库时.我有另一个想要使用它的项目(库中的#include文件等),但我不知道链接库或包含库中文件的正确方法.
我正在尝试编译一个静态库以在Android上使用,但我无法弄清楚如何编译它.该库使用标准库(stdio.h等...)和libxml2.
我正在尝试使用arm-eabi-gcc进行编译,但是我收到以下错误:
/cygdrive/c/android-ndk-r4/build/platforms/android-8/arch-x86/usr/include/asm/posix_types.h:15:28:错误:posix_types_64.h:没有这样的文件或目录
我如何让它工作?
我想为iphone构建一个静态库.我想给我的用户提供.a库,它们可以用于模拟器测试和设备测试.我是否必须在模拟器模式和设备模式下构建两个库?有没有办法建立一个可以用于两个平台的单一?
我有一个测试文件(仅用于链接测试),其中我使用我自己的/ 库调用来重载new/ delete运算符.但是在链接静态库时,我一直得到"未定义的引用"错误,即使我改变了和的顺序.但是一切都适用于连接这个库的其他C程序.我对这个问题很困惑,并且感谢任何线索.mallocfreelibxmalloc.atest.o-lxmalloc
错误消息:
g++ -m64 -O3 -I/usr/include/ethos -I/usr/include/nacl/x86_64 -c -o test.o test.cpp
g++ -m64 -O3 -L. -o demo test.o -lxmalloc
test.o: In function `operator new(unsigned long)':
test.cpp:(.text+0x1): undefined reference to `malloc(unsigned long)'
test.o: In function `operator delete(void*)':
test.cpp:(.text+0x11): undefined reference to `free(void*)'
test.o: In function `operator new[](unsigned long)':
test.cpp:(.text+0x21): undefined reference to `malloc(unsigned long)'
test.o: In function `operator delete[](void*)':
test.cpp:(.text+0x31): undefined reference to `free(void*)'
test.o: In function `main':
test.cpp:(.text.startup+0xc): undefined reference …Run Code Online (Sandbox Code Playgroud) 听播客,我听说C#不是动态语言而Ruby是.
什么是"动态语言"?动态语言的存在是否意味着存在静态语言?
为什么C#是动态语言,其他语言是动态的?如果C#不是动态的,为什么微软将它强烈推向市场?
那么为什么大多数.NET程序员都对它疯狂并留下其他语言并转向C#?
为什么Ruby"是未来的语言"?
static-libraries ×10
iphone ×3
c ×2
c++ ×2
64-bit ×1
android ×1
android-ndk ×1
c# ×1
cocoa-touch ×1
core-data ×1
disassembly ×1
dump ×1
libpng ×1
linker ×1
nsbundle ×1
objective-c ×1
qt-creator ×1
resources ×1
ruby ×1
visual-c++ ×1
windows ×1