精华内容
下载资源
问答
  • 在实际编译代码的过程中,我们经常会遇到"undefined reference to"的问题,简单的可以轻易地解决,但有些却隐藏得很深,需要花费大量的时间去排查。工作中遇到了各色各样类似的问题,按照以下几

          前些天,发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到教程:

          人工智能入门与进阶(链接)

     

     

     

     

    在实际编译代码的过程中,我们经常会遇到"undefined reference to"的问题,简单的可以轻易地解决,但有些却隐藏得很深,需要花费大量的时间去排查。工作中遇到了各色各样类似的问题,按照以下几种可能出现的状况去排查,可有利于理清头绪,从而迅速解决问题。

    链接时缺失了相关目标文件

    首先编写如下的测试代码:

    
    // test.h
    
    #ifndef __TEST_H__
    #define __TEST_H__
    
    void test();
    
    #endif
    
    // test.c
    
    #include <string.h>
    #include <stdio.h>
    
    
    
    void test()
    {
        printf("just test it\n");
    }
    
    // main.c
    
    #include "test.h"
    
    int main(int argc, char **argv)
    {
        test();
    
        return 0;
    }

    通过以下的命令,我们将会得到两个.o文件。

    $ gcc -c test.c  
    $ gcc –c main.c 

    随后,我们将main.o这个文件,编译成可执行文件。

    $ gcc -o main main.o
    Undefined symbols for architecture x86_64:
      "_test", referenced from:
          _main in main.o
    ld: symbol(s) not found for architecture x86_64
    clang: error: linker command failed with exit code 1 (use -v to see invocation)

    编译时报错了,这是最典型的undefined reference错误,因为在链接时发现找不到某个函数的实现文件。如果按下面这种方式链接就正确了。

    $ gcc -o main main.o test.o

    当然,也可以按照如下的命令编译,这样就可以一步到位。

    $ gcc -o main main.c test.c

    链接时缺少相关的库文件

    我们把第一个示例中的test.c编译成静态库。

    $ gcc -c test.c  
    $ ar -rc test.a test.o 

    接着编译可执行文件,使用如下命令:

    $ gcc -o main main.c 
    Undefined symbols for architecture x86_64:
      "_test", referenced from:
          _main in main-6ac26d.o
    ld: symbol(s) not found for architecture x86_64
    clang: error: linker command failed with exit code 1 (use -v to see invocation)

    其根本原因也是找不到test()函数的实现文件,由于test()函数的实现在test.a这个静态库中,故在链接的时候需要在其后加入test.a这个库,链接命令修改为如下形式即可。

    $ gcc -o main main.c test.a

     

    链接的库文件中又使用了另一个库文件  (这个例子非常非常好, 我就是犯了这种错误!!!)

    先更改一下第一个示例中使用到的代码,在test()中调用其它的函数,更改的代码如下所示。

    
    // func.h
    
    #ifndef __FUNC_H__
    #define __FUNC_H__
    
    void func();
    
    #endif
    
    // func.c
    
    #include <stdio.h>
    
    void func()
    {
        printf("call it\n");
    }
    
    // test.h
    
    #ifndef __TEST_H__
    #define __TEST_H__
    
    void test();
    
    #endif
    
    // test.c
    
    #include <string.h>
    #include <stdio.h>
    
    #include "func.h"
    
    
    
    void test()
    {
        printf("just test it\n");
    
        func();
    }
    
    // main.c
    
    #include "test.h"
    
    int main(int argc, char **argv)
    {
        test();
    
        return 0;
    }

    我们先对fun.ctest.c进行编译,生成.o文件。

    $ gcc -c func.c  
    $ gcc -c test.c

    然后,将test.cfunc.c各自打包成为静态库文件。

    $ ar –rc func.a func.o  
    $ ar –rc test.a test.o 

    这时将main.c编译为可执行程序,由于main.c中包含了对test()的调用,因此,应该在链接时将test.a作为我们的库文件,链接命令如下。

    $ gcc -o main main.c test.a
    Undefined symbols for architecture x86_64:
      "_func", referenced from:
          _test in test.a(test.o)
    ld: symbol(s) not found for architecture x86_64
    clang: error: linker command failed with exit code 1 (use -v to see invocation)

    就是说,链接的时候发现test.a调用了func()函数,找不到对应的实现,我们还需要将test.a所引用到的库文件也加进来才能成功链接,因此命令如下。

    $ gcc -o main main.c test.a func.a

    同样,如果我们的库或者程序中引用了第三方库(如pthread.a)则在链接的时候需要给出第三方库的路径和库文件,否则就会得到undefined reference的错误。

    多个库文件链接顺序问题

    这种问题非常隐蔽,不仔细研究,可能会感到非常地莫名其妙。以第三个示例为测试代码,把链接库的顺序换一下,如下所示:

    $ gcc -o main main.c func.a test.a
    test.a(test.o): In function `test':  
    test.c:(.text+0x13): undefined reference to `func'  
    collect2: ld returned 1 exit status

    因此,在链接命令中给出所依赖的库时,需要注意库之间的依赖顺序,依赖其他库的库一定要放到被依赖库的前面,这样才能真正避免undefined reference的错误,完成编译链接。

    备注:在MAC上可以正常编译通过。

    定义与实现不一致

    编写测试代码如下:

    
    // test.h
    
    #ifndef __TEST_H__
    #define __TEST_H__
    
    void test(unsigned int c);
    
    #endif
    
    // test.c
    
    #include <string.h>
    #include <stdio.h>
    
    
    
    void test(int c)
    {
        printf("just test it\n");
    }
    
    // main.c
    
    #include "test.h"
    
    int main(int argc, char **argv)
    {
        test(5);
    
        return 0;
    }

    先将test.c编译成库文件。

    $ gcc -c test.c 
    $ ar -rc test.a test.o

    main.c编译成可执行文件。

    $ gcc -o main main.c test.a
    ld: warning: ignoring file test.a, file was built for archive which is not the architecture being linked (x86_64): test.a
    Undefined symbols for architecture x86_64:
      "_test", referenced from:
          _main in main-f27cf1.o
    ld: symbol(s) not found for architecture x86_64
    clang: error: linker command failed with exit code 1 (use -v to see invocation)

    链接出错了,原因很简单,test()这个函数的声明和定义不一致导致,将两者更改成一样即可通过编译。

    c++代码中链接c语言的库

    代码同示例一的代码一样,只是把main.c更改成了main.cpp。编译test.c,并打包为静态库。

    $ gcc -c test.c  
    $ ar -rc test.a test.o

    编译可执行文件,用如下命令:

    $ g++ -o main main.cpp test.a 
    Undefined symbols for architecture x86_64:
      "test()", referenced from:
          _main in main-7d7fde.o
    ld: symbol(s) not found for architecture x86_64
    clang: error: linker command failed with exit code 1 (use -v to see invocation)

    原因就是main.cppc++代码,调用了c语言库的函数,因此链接的时候找不到,解决方法是在相关文件添加一个extern "C"的声明即可,例如修改test.h文件。

    
    // test.h
    
    #ifndef __TEST_H__
    #define __TEST_H__
    
    #ifdef __cplusplus
    extern "C" {
    #endif
    
    void test();
    
    #ifdef __cplusplus
    }
    #endif
    
    #endif

     

     

     

    展开全文
  • Kotlin Unresolved reference: 解决办法

    万次阅读 热门讨论 2018-01-05 16:42:20
    kotlin Unresolved reference:错误的解决办法

    Android官方已经不建议使用Kotlin Android Extensions 了,建议使用ViewBinding代替Kotlin synthetics,详情请看:

    ViewBinding代替Kotlin synthetics


    已下是之前使用 Kotlin synthetics 遇到的问题

    今天在使用Kotlin写demo的时候发现,当我在主工程中的xml布局中通过include标签引入其他Moudle中的布局后,编译就会报Unresolved reference xxx这个错误.但是include本模块中的布局就没问题。应该是目前kotlin-android-extensions暂时还不支持跨模块的问题吧。(截止到2018-01-05)

    解决办法:
    1.将通用布局放到本模块中
    2.直接在xml中写布局,不要include其他模块中的布局

    暂时只想到这两个笨方法,如果你有更好的解决方法,还请指教。不胜感激,谢谢!


    展开全文
  • 描述:模块部分,写一个外部模块导入的时候居然提示unresolved reference,如下,程序可以正常运行,但是就是提示包部分红色,看着特别不美观,下面是解决办法 PyCharm版本: 解决: 1.在项目上 单击右键 -&...

    描述:模块部分,写一个外部模块导入的时候居然提示unresolved reference,如下,程序可以正常运行,但是就是提示包部分红色,看着特别不美观,下面是解决办法

    PyCharm版本:

    解决:

        1.在项目上 单击右键 -> Mark Directory as -> Sources Root

        2.点击之后红色警告消失

        3.进入设置:file -> settings

        4.按照下图展开 Build,Execution,Deployment -> Console -> Python Console -> Add source roots to PYTHONPATH,勾选上3,选择确定,问题完美解决

    5.如果问题还没解决,欢迎大家留言探讨

    网友留言提示:如果创建的是directory而不是package上述操作不会生效!

    【已经多次掉入这个坑了,大家网上查,很多说设置成source root就可以了,然后添加路径,有的可以解决,有的不能解决,这是为什么了,经过多次尝试发现,我们忽略了一个问题,就是有的小伙伴新建文件夹而不是包(图标上有小圆圈),如果这种情况采取以上操作无效的,需要把文件夹转成包】

    展开全文
  • Dubbo之@ReferenceReferenceBean

    千次阅读 2019-07-17 12:41:49
    1、构建一个ReferenceBean,然后使用Spring的@Autowired引用服务 @Bean public ReferenceBean<PLRepaymentPlanService> repaymentPlanServiceReferenceBean(){ ReferenceBean<PLRepayment...

    consumer调用dubbo服务

    两种方法:

    1、构建一个ReferenceBean,然后使用Spring的@Autowired引用服务

    @Bean
    public ReferenceBean<PLRepaymentPlanService> repaymentPlanServiceReferenceBean(){
        ReferenceBean<PLRepaymentPlanService> referenceBean = new ReferenceBean<>();
        referenceBean.setInterface(PLRepaymentPlanService.class);
        referenceBean.setCheck(false);
        referenceBean.setValidation("true");
        return referenceBean;
    }
    @Autowired
    private PLRepaymentPlanService plRepaymentPlanService;

    2、使用dubbo的@Reference注解

    @Reference
    ExampleService exampleService

    @Reference其实就是将引用的服务 构建成一个ReferenceBean然后在调用 原理一样 

    以下资料参考:https://blog.csdn.net/u012394095/article/details/83142193 

    源码入口
    com.alibaba.dubbo.config.spring.context.annotation.DubboComponentScanRegistrar

    Override
      public void registerBeanDefinitions(AnnotationMetadata importingClassMetadata, BeanDefinitionRegistry registry) {
      // 获取扫描包路径
      Set<String> packagesToScan = getPackagesToScan(importingClassMetadata);
      // 注册@service解析的类
      registerServiceAnnotationBeanPostProcessor(packagesToScan, registry);
      // 注册解析@Reference注解的bean
      registerReferenceAnnotationBeanPostProcessor(registry);

    }



    registerReferenceAnnotationBeanPostProcessor

     

    private void registerReferenceAnnotationBeanPostProcessor(BeanDefinitionRegistry registry) {

            // Register @Reference Annotation Bean Processor
            BeanRegistrar.registerInfrastructureBean(registry,
                    ReferenceAnnotationBeanPostProcessor.BEAN_NAME, ReferenceAnnotationBeanPostProcessor.class);

    }

    调用了BeanRegistrar工具类来注册Reference解析器的BeanDefinition, registerInfrastructureBean方法的主要作用就是将ReferenceAnnotationBeanPostProcessor这个类注册到BeanDefinition

    public class BeanRegistrar {

        /**
         * Register Infrastructure Bean
         *
         * @param beanDefinitionRegistry {@link BeanDefinitionRegistry}
         * @param beanType               the type of bean
         * @param beanName               the name of bean
         */
        public static void registerInfrastructureBean(BeanDefinitionRegistry beanDefinitionRegistry,
                                                      String beanName,
                                                      Class<?> beanType) {

            if (!beanDefinitionRegistry.containsBeanDefinition(beanName)) {
                RootBeanDefinition beanDefinition = new RootBeanDefinition(beanType);
                beanDefinition.setRole(BeanDefinition.ROLE_INFRASTRUCTURE);
                  // 注册
                beanDefinitionRegistry.registerBeanDefinition(beanName, beanDefinition);
            }

        }

    }


    ReferenceAnnotationBeanPostProcessor


    本文的重点在于ReferenceAnnotationBeanPostProcessor类,该类继承了InstantiationAwareBeanPostProcessor ,用来解析@Reference注解并完成依赖注入。

    public class ReferenceAnnotationBeanPostProcessor extends InstantiationAwareBeanPostProcessorAdapter
            implements MergedBeanDefinitionPostProcessor, PriorityOrdered, ApplicationContextAware, BeanClassLoaderAware,
            DisposableBean {
        // 省略注解
    }

    **InstantiationAwareBeanPostProcessor **:实例化Bean后置处理器(继承BeanPostProcessor)

    1.postProcessBeforeInstantiation :在实例化目标对象之前执行,可以自定义实例化逻辑,如返回一个代理对象等。

    2.postProcessAfterInitialization : Bean实例化完毕后执行的后处理操作,所有初始化逻辑、装配逻辑之前执行,如果返回false将阻止其他的InstantiationAwareBeanPostProcessor的postProcessAfterInstantiation的执行。

    3.postProcessPropertyValues :完成其他定制的一些依赖注入和依赖检查等,如AutowiredAnnotationBeanPostProcessor执行@Autowired注解注入,CommonAnnotationBeanPostProcessor执行@Resource等注解的注入,PersistenceAnnotationBeanPostProcessor执行@ PersistenceContext等JPA注解的注入,RequiredAnnotationBeanPostProcessor执行@ Required注解的检查等等。

    dubbo也是采用了和@Autowired注入一样的原理,通过继承InstantiationAwareBeanPostProcessor 重写postProcessPropertyValues 方法来达到解析@Reference并实现依赖注入。

    @Override
    public PropertyValues postProcessPropertyValues(
      PropertyValues pvs, PropertyDescriptor[] pds, Object bean, String beanName) throws BeanCreationException {
      //这个是注入元数据,包含了目标Bean的Class对象,和注入元素(InjectionElement)集合
      InjectionMetadata metadata = findReferenceMetadata(beanName, bean.getClass(), pvs);
      try {
         // 通过反射来给bean设置值了
        metadata.inject(bean, beanName, pvs);
      } catch (BeanCreationException ex) {
        throw ex;
      } catch (Throwable ex) {
        throw new BeanCreationException(beanName, "Injection of @Reference dependencies failed", ex);
      }
      return pvs;
    }


    通过findReferenceMetadata找到@Reference,并解析得到元数据对象,最终实现依赖注入,@Autowired注解也是这个干的,二者的实现原理是一模一样。

    private InjectionMetadata findReferenceMetadata(String beanName, Class<?> clazz, PropertyValues pvs) {
            // 通过类名作为缓存的key
            String cacheKey = (StringUtils.hasLength(beanName) ? beanName : clazz.getName());
            // 从缓存中的injectionMetadataCache根据类名获取元数据
            ReferenceInjectionMetadata metadata = this.injectionMetadataCache.get(cacheKey);
              // 判断metadata 是否为空,  class对象不等于ReferenceInjectionMetadata , 则需要进行刷新
            if (InjectionMetadata.needsRefresh(metadata, clazz)) {
                synchronized (this.injectionMetadataCache) {
                      // 双重检查机制
                    metadata = this.injectionMetadataCache.get(cacheKey);
                    if (InjectionMetadata.needsRefresh(metadata, clazz)) {
                        if (metadata != null) {
                            metadata.clear(pvs);
                        }
                        try {
                              // 构建InjectionMetadata元数据
                            metadata = buildReferenceMetadata(clazz);
                            this.injectionMetadataCache.put(cacheKey, metadata);
                        } catch (NoClassDefFoundError err) {
                            throw new IllegalStateException("Failed to introspect bean class [" + clazz.getName() +
                                    "] for reference metadata: could not find class that it depends on", err);
                        }
                    }
                }
            }
            return metadata;
        }
     


    buildReferenceMetadata

     

    private ReferenceInjectionMetadata buildReferenceMetadata(final Class<?> beanClass) {
              // 获取属性上的@Reference注解
            Collection<ReferenceFieldElement> fieldElements = findFieldReferenceMetadata(beanClass);
              // 获取方法上的@Reference注解
            Collection<ReferenceMethodElement> methodElements = findMethodReferenceMetadata(beanClass);
            return new ReferenceInjectionMetadata(beanClass, fieldElements, methodElements);

    }

    获取属性上的@Reference注解findFieldReferenceMetadata

    private List<ReferenceFieldElement> findFieldReferenceMetadata(final Class<?> beanClass) {
        
            final List<ReferenceFieldElement> elements = new LinkedList<ReferenceFieldElement>();
            // 通过反射的工具类,获取当前beanClass的所有Filed
            ReflectionUtils.doWithFields(beanClass, new ReflectionUtils.FieldCallback() {
                @Override
                public void doWith(Field field) throws IllegalArgumentException, IllegalAccessException {
                    // 获取Reference注解
                    Reference reference = getAnnotation(field, Reference.class);
                    // 注解不为空
                    if (reference != null) {

                        if (Modifier.isStatic(field.getModifiers())) {
                            if (logger.isWarnEnabled()) {
                                logger.warn("@Reference annotation is not supported on static fields: " + field);
                            }
                            return;
                        }
                        // 构建ReferenceFieldElement
                        elements.add(new ReferenceFieldElement(field, reference));
                    }

                }
            });

            return elements;

        }

    上面的代码就很简单了,通过ReflectionUtils工具类,反射获取当前beanClass 的所有Filed , 之后获取每个filed上的@Reference注解,如果获取不为空,则继续下一步。最终构建ReferenceFieldElement对象,将对应的filed和Reference注解放进去。

    元数据收集好了,接下来就是调用metadata.inject(bean, beanName, pvs);这个方法了。

    public void inject(Object target, String beanName, PropertyValues pvs) throws Throwable {
              // 获取InjectedElement
            Collection<InjectionMetadata.InjectedElement> elementsToIterate = this.checkedElements != null ? this.checkedElements : this.injectedElements;
            if (!((Collection)elementsToIterate).isEmpty()) {
                boolean debug = logger.isDebugEnabled();
                // 进行循环,也就是循环设值,因为有多个字段嘛。
                InjectionMetadata.InjectedElement element;
                for(Iterator var6 = ((Collection)elementsToIterate).iterator(); var6.hasNext(); element.inject(target, beanName, pvs)) {
                    element = (InjectionMetadata.InjectedElement)var6.next();
                    if (debug) {
                        logger.debug("Processing injected element of bean '" + beanName + "': " + element);
                    }
                }
            }

        }

    上面的代码,其实只有一行,那就是element.inject(target, beanName, pvs) 这一行,因为一个InjectedElement对象就表示一个字段对象,这个对象中将字段信息和注解信息绑定在了一起,调用inject方法就是为了给这个filed进行赋值。

     

    ###ReferenceFieldElement

     

    private class ReferenceFieldElement extends InjectionMetadata.InjectedElement {
            // 字段对象
            private final Field field;
            // Reference注解对象
            private final Reference reference;
            // 服务引用对象
            private volatile ReferenceBean<?> referenceBean;

            protected ReferenceFieldElement(Field field, Reference reference) {
                super(field, null);
                this.field = field;
                this.reference = reference;
            }

            @Override
            protected void inject(Object bean, String beanName, PropertyValues pvs) throws Throwable {
                // 获取字段的类型
                Class<?> referenceClass = field.getType();
                // 构建ReferenceBean
                referenceBean = buildReferenceBean(reference, referenceClass);
                // 字段为私有,需要设置这个属性field.setAccessible(true)  才能进行设值
                ReflectionUtils.makeAccessible(field);
                // 给这个对象bean的这个filed设置值,值为:referenceBean.getObject()
                field.set(bean, referenceBean.getObject());

            }

        }

    通过buildReferenceBean方法创建服务引用对象

    private ReferenceBean<?> buildReferenceBean(Reference reference, Class<?> referenceClass) throws Exception {
            // 获取服务引用对象的缓存key
            String referenceBeanCacheKey = generateReferenceBeanCacheKey(reference, referenceClass);
            // 从缓存map中获取服务引用对象
            ReferenceBean<?> referenceBean = referenceBeansCache.get(referenceBeanCacheKey);

            if (referenceBean == null) {
                // 如果引用对象为空,则需要当场创建一个
                ReferenceBeanBuilder beanBuilder = ReferenceBeanBuilder
                        .create(reference, classLoader, applicationContext)
                        .interfaceClass(referenceClass);

                referenceBean = beanBuilder.build();
                //并且放入到缓存map中。
                referenceBeansCache.putIfAbsent(referenceBeanCacheKey, referenceBean);

            }

            return referenceBean;

        }
     private String generateReferenceBeanCacheKey(Reference reference, Class<?> beanClass) {
            // 获取接口名称
            String interfaceName = resolveInterfaceName(reference, beanClass);
            // 通过引用的URl+接口名+接口版本号+接口分组,用来做缓存key
            String key = reference.url() + "/" + interfaceName +
                    "/" + reference.version() +
                    "/" + reference.group();

            Environment environment = applicationContext.getEnvironment();

            key = environment.resolvePlaceholders(key);

            return key;

        }

    消费者每引用的一种服务,都会创建一个ReferenceBean, 如果多个地方使用@Reference引用同一个服务,需要看他们的的缓存key是否一样,如果都是一样的,那么就只会创建一个ReferenceBean,如果有些配置不一样,比如版本号不一致,则会创建创建不同的ReferenceBean对象,这也是他版本号能够起到的作用把。至此,@Reference注解已经解析完毕,并且服务引用的对象也已经创建了。

    展开全文
  • reference(引用)是一个object的alias别名,本身不是一个object,故严格说没有const reference。当你称呼const reference 的时候前提是你要明白那是对reference to const 的简称。
  • "undefined reference to" 问题解决方法

    万次阅读 多人点赞 2019-05-30 21:01:00
    (.text+0x13): undefined reference to `func’ 关于undefined reference 这样的问题,大家其实经常会遇到,在此,我以详细地示例给出常见错误的各种原因以及解决方法,希望对初学者有所帮助。 1. 链接时缺失了相关...
  • pycharm中出现unresolved reference的解决办法

    万次阅读 多人点赞 2019-03-04 10:45:22
    unresolved reference",我就很郁闷,明明代码可以正确运行的啊,怎么会出现这种错误。 红色错误提示看着真心不爽,索性去网上百度了一圈,居然没找到解决办法,后来在stackoverflow上看到有人遇到同样...
  • 1.Git Reference简写为refs。2.Reference Specification简称refspec。
  • Java Reference

    千次阅读 2015-06-11 20:26:29
    Java Reference简要笔记。。。
  • c# WebReference与ServiceReference 小结

    千次阅读 2018-08-22 16:33:57
    WebReference是由wsdl.exe生成客户端代理的。生成webservice代理类的方法,即从System.Web.Services.Protocols.SoapHttpClientProtocol派生而来,代理类代码可以指定要访问的Url属性。 ServiceReference是由svcutil...
  • Application reference

    2014-09-13 10:40:16
    Application reference is more like a shell shortcut or .lnk file, which contains a reference to a ClickOnce installed application. This is specific to ClickOnce.
  • 引用 Web Reference 设置好URL地址后,引用是在项目的Web References文件夹里,在CS文件里使用如下: WebReference.WSBasicLib cs = new WebService1.WebReference.WSBasicLib(); Response.Write(cs.GetDate_Last...
  • 对@Reference 、@Resource和@Autowired的简单理解

    万次阅读 多人点赞 2018-11-20 00:26:33
    主要谈一下对这三个注解的简单理解: @Reference 、@Resource和@Autowired
  • Cyclic Reference sReferencecounting is a convenient resource management mechanism, it has one fundamental drawback though: cyclic reference
  • Universal Reference

    千次阅读 2015-04-02 15:37:18
    表示c++11 添加了std::move后一直搞不清楚左值,右值神马的....type&& -> rvalue reference 错误 千万不要天真的以为有了&&后,就是右值引用了! type&& 可能代表两种情况 1> rvalue reference 2> univers
  • dubbo @Reference 注解注入原理

    千次阅读 2019-09-19 19:29:26
    被@Reference 注解的 bean,是在什么时机注入的? 被@Reference 注解的 bean,通常是一个接口,怎么可以被实例化呢? 答案是: @Reference 的注入时机和 @Autowired 注解是类似的,但不完全一样。负责修饰 bean ...
  • Reference Obligation

    2012-12-20 16:59:49
    Definition of 'Reference Obligation' The specific underlying debt upon which a credit derivative is based. A reference obligation is issued by the reference entity. It does not represent all the form
  • Web Reference和Service Reference的区别

    千次阅读 2017-07-26 10:09:02
    今天因为项目需要使用服务引用,就按之前的经验添加上了,步骤...按照上面的步骤就可以将引用添加到Web References文件夹下,这也是以往经验,但是具体使用时发现添加的是Web Reference并不能满足项目的需要,这里需
  • java Reference

    千次阅读 2013-01-22 15:38:28
    java reference Reference Java世界泰山北斗级大作《Thinking In Java》切入Java就提出“Everything is Object”。在Java这个充满Object的世界中,reference是一切谜题的根源,所有的故事都是从这里开始的。...
  • CTFramesetter Reference

    千次阅读 2012-11-26 10:01:51
    转载自:http://developer.apple.com/library/mac/#documentation/Carbon/Reference/CTFramesetterRef/Reference/reference.html#//apple_ref/c/func/CTFramesetterSuggestFrameSizeWithConstraints ...
  • python reference理解

    2019-11-03 13:57:59
    在python中当我们创建一个新变量并赋值时,实际上我们是创建了一个object和一个reference。例如当我们执行如下语句的时候:a=1,一个值为1的objec将t在内存中被创建,并且一个reference 'a’被指向这个object。假如...
  • undefined reference to 'floor'/undefined reference to `& undefined reference to 'pow'/undefined reference to `&   今天用linux编译一个程序的时候遇到了一个小问题,如标题所示,先说解决方法 ...
  • reference path

    2015-01-30 15:09:52
    .NET中 reference path存在的意义 当然没用,要在HTML中用script标签引用才有效果,/// 收获园豆:10 Gray Zhang | 专家六级 |园豆:17610 | 2010-12-20 17:02 页面上也引用了,刚才...
  • Jetbrains Rider 添加 Reference

    千次阅读 2019-08-27 16:46:41
    非常简单的操作,记录一下。 偶然群里提到Unity 下添加System....方法很简单 Solution 视图下,右键Reference -》 Add Reference 打开的界面 可以直接搜索,或者通过Add From 通过文件近行指定目标近行添加 ...
  • undefined reference to

    千次阅读 2019-03-15 19:43:39
    多个库文件链接顺序问题 这种问题非常隐蔽,不仔细研究,可能会感到非常地莫名其妙。以第三个示例为测试代码,把链接库的顺序换一下,如下所示: ... test.c:(.text+0x13): undefined reference...
  • 使用mediaSession时报错 Fatal Exception: java.lang.NullPointerException: Attempt to ... virtual method ‘java.lang.Object java.lang.ref.Reference.get()’ on a null object reference at andro...
  • PowerDesigner Reference 外键

    千次阅读 2017-11-28 17:02:28
    我们可能在Powerdesigner中,直接新建物理...1、如果B表中没有外键列,则直接使用工具reference,B表中自动生成外键列,如下图: 2、如果B表中已经有列和A中主键列相同,则直接使用工具reference,使用B表已
  • 以前在同一模块中Spring依赖注入,可以通过@Service和@Autowired Dubbo是远程服务调用,...dubbo:reference、dubbo:service <dubbo:service interface="fei.CustomerServices" ref="customerServices"/> ...
  • 解决 undefined reference to 问题

    万次阅读 2018-06-14 15:27:40
    首先这篇文章总结得不错 ... 然后依然会碰到问题,这时候就要看具体的函数签名了 Name Mangling in C++ 参考 http://blog.51cto.com/hipercomer/855223 nm工具的 –demangle 选项 可以让函数名可读 ...name dema...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 226,884
精华内容 90,753
关键字:

reference