C++程序  |  25行  |  665 B

/* A small program used to check that LOCAL_WHOLE_STATIC_LIBRARIES builds
 * and works properly. Here, we check that the 'foo2' function which is
 * never called from main is still included in the final executable
 * image.
 */
#include <stdio.h>
#include <dlfcn.h>

int main(void)
{
    void*  lib;

    lib = dlopen("/data/local/tmp/ndk-tests/libbar.so", RTLD_NOW);
    if (lib == NULL) {
        fprintf(stderr, "Could not dlopen(\"libbar.so\"): %s\n", dlerror());
        return 1;
    }
    if (dlsym(lib, "foo2") == NULL) {
        fprintf(stderr, "Symbol 'foo2' is missing from shared library!!\n");
        return 2;
    }
    dlclose(lib);
    return 0;
}