Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

collect2: error: ld returned 1 exit status #1449

Closed
MatrixOwl opened this issue Dec 15, 2019 · 2 comments · Fixed by #1332
Closed

collect2: error: ld returned 1 exit status #1449

MatrixOwl opened this issue Dec 15, 2019 · 2 comments · Fixed by #1332
Assignees

Comments

@MatrixOwl
Copy link

MatrixOwl commented Dec 15, 2019

Describe the bug (must be provided)

make 时出现报错,四个未定义的引用

Your Environments (must be provided)

  • OS: Ubuntu 18.04

  • Compliler: g++ (GCC) 8.2.0

  • CPU: Intel(R) Xeon(R) CPU E3-1505M v5 @ 2.80GHz

How To Reproduce(must be provided)

与”installing from source code“步骤相同

Expected behavior

/opt/nebula/third-party/lib/libkrb5.a(dnsglue.o): In function krb5int_dns_init': dnsglue.c:(.text+0xb8): undefined reference to __res_nsearch'
dnsglue.c:(.text+0xf8): undefined reference to ns_initparse' /opt/nebula/third-party/lib/libkrb5.a(dnsglue.o): In function krb5int_dns_nextans':
dnsglue.c:(.text+0x1b5): undefined reference to ns_parserr' /opt/nebula/third-party/lib/libkrb5.a(dnsglue.o): In function krb5int_dns_expand':
dnsglue.c:(.text+0x25c): undefined reference to `ns_name_uncompress'
collect2: error: ld returned 1 exit status
src/meta/test/CMakeFiles/admin_client_test.dir/build.make:335: recipe for target 'src/meta/test/_build/admin_client_test' failed
make[2]: *** [src/meta/test/_build/admin_client_test] Error 1
CMakeFiles/Makefile2:3622: recipe for target 'src/meta/test/CMakeFiles/admin_client_test.dir/all' failed
make[1]: *** [src/meta/test/CMakeFiles/admin_client_test.dir/all] Error 2
Makefile:162: recipe for target 'all' failed
make: *** [all] Error 2

Additional context

See Trouble Shooting for possible errors.

@Shylock-Hg
Copy link
Contributor

Try locate libresolv.so.2 or locate libresolv.so.

@dutor
Copy link
Contributor

dutor commented Dec 17, 2019

Thanks for reporting this.

This problem is due to the misordering between libkrb5 and libresolve, which will be addressed in #1332 , at here

dutor added a commit that referenced this issue Jan 1, 2020
This PR is trying to improve the building experience, by:
 1. Providing `third-party/install-cmake.sh` to download and install a prebuilt CMake
 2. Providing `third-party/build-gcc.sh` to automatically download and build GCC 7.5.0
 3. Providing `third-party/install-gcc.sh` to download and install a prebuilt GCC 7.5.0 according to the current distro and libc
 4. Providing `third-party/build-third-party.sh` to build and optionally package our third party dependencies
 4. Providing `third-party/build-all-third-party.sh` to invoke `build-third-party.sh` using several preset versions of GCC
 5. Providing `third-party/install-third-party.sh` to download and install a prebuilt third party according to the current version of glibc, GCC(along with its ABI version)
 6. Invoke `install-third-party.sh` automatically during the configure stage(cmake)

Besides, all installing scripts support an `--prefix` option to allow one customizing the install location. For the third party installation, works are done to make *Bison* and *krb5* relocatable.

The fresh new building shceme has been tested under various environments:
 1. CentOS 6/7/8
 2. Debian 7/8/9
 3. Ubuntu 16.04/18.04/19.04
 4. GCC 7/8/9, and devtoolset-7 of CentOS 6/7

Since most of these testing are from inside a Docker image, so the Linux Kernel used is nearly the newest one(5.0). There might be other unfound issues.

To try out this PR, run
```sh
$ git clone --single-branch --depth=1 --branch refactor-building https://github.com/dutor/nebula.git nebula-refactor-building
$ cd nebula-refactor-building
$ mkdir build && cd build
$ ../third-party/install-cmake.sh             # Can be skipped if you have CMake 3.5.0+
$ source cmake-3.15.5/bin/enable-cmake.sh     # Only necessary if you invoked install-cmake.sh
$ sudo ../third-party/install-gcc.sh          # Can be skipped if you have GCC 7.1.0+
$ source /opt/vesoft/toolset/gcc/7.5.0/enable # Only necessary if you invoked install-gcc.sh
$ cmake ..
$ make
```

BTW. This PR also fixes #1449 
BTW. This PR reduces the build size a lot, as mentioned in #1401
tong-hao pushed a commit to tong-hao/nebula that referenced this issue Jun 1, 2021
This PR is trying to improve the building experience, by:
 1. Providing `third-party/install-cmake.sh` to download and install a prebuilt CMake
 2. Providing `third-party/build-gcc.sh` to automatically download and build GCC 7.5.0
 3. Providing `third-party/install-gcc.sh` to download and install a prebuilt GCC 7.5.0 according to the current distro and libc
 4. Providing `third-party/build-third-party.sh` to build and optionally package our third party dependencies
 4. Providing `third-party/build-all-third-party.sh` to invoke `build-third-party.sh` using several preset versions of GCC
 5. Providing `third-party/install-third-party.sh` to download and install a prebuilt third party according to the current version of glibc, GCC(along with its ABI version)
 6. Invoke `install-third-party.sh` automatically during the configure stage(cmake)

Besides, all installing scripts support an `--prefix` option to allow one customizing the install location. For the third party installation, works are done to make *Bison* and *krb5* relocatable.

The fresh new building shceme has been tested under various environments:
 1. CentOS 6/7/8
 2. Debian 7/8/9
 3. Ubuntu 16.04/18.04/19.04
 4. GCC 7/8/9, and devtoolset-7 of CentOS 6/7

Since most of these testing are from inside a Docker image, so the Linux Kernel used is nearly the newest one(5.0). There might be other unfound issues.

To try out this PR, run
```sh
$ git clone --single-branch --depth=1 --branch refactor-building https://github.com/dutor/nebula.git nebula-refactor-building
$ cd nebula-refactor-building
$ mkdir build && cd build
$ ../third-party/install-cmake.sh             # Can be skipped if you have CMake 3.5.0+
$ source cmake-3.15.5/bin/enable-cmake.sh     # Only necessary if you invoked install-cmake.sh
$ sudo ../third-party/install-gcc.sh          # Can be skipped if you have GCC 7.1.0+
$ source /opt/vesoft/toolset/gcc/7.5.0/enable # Only necessary if you invoked install-gcc.sh
$ cmake ..
$ make
```

BTW. This PR also fixes vesoft-inc#1449 
BTW. This PR reduces the build size a lot, as mentioned in vesoft-inc#1401
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging a pull request may close this issue.

4 participants