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

cmake error: #3381

Closed
talking-toaster opened this issue Apr 12, 2023 · 2 comments
Closed

cmake error: #3381

talking-toaster opened this issue Apr 12, 2023 · 2 comments

Comments

@talking-toaster
Copy link

build on nvidia NX,ubuntu 18.04

nvidia@nvidia-desktop:~/code/fmt/build$ cmake ..
-- CMake version: 3.20.0
-- The CXX compiler identification is GNU 7.5.0
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Check for working CXX compiler: /usr/bin/c++ - skipped
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Module support is disabled.
-- Version: 9.1.1
-- Build type: Release
CMake Error at CMakeLists.txt:333 (install):
  install TARGETS given unknown argument "FILE_SET".


-- Looking for C++ include pthread.h
-- Looking for C++ include pthread.h - found
-- Performing Test CMAKE_HAVE_LIBC_PTHREAD
-- Performing Test CMAKE_HAVE_LIBC_PTHREAD - Failed
-- Looking for pthread_create in pthreads
-- Looking for pthread_create in pthreads - not found
-- Looking for pthread_create in pthread
-- Looking for pthread_create in pthread - found
-- Found Threads: TRUE  
-- Looking for strptime
-- Looking for strptime - found
-- FMT_PEDANTIC: OFF
-- Configuring incomplete, errors occurred!
See also "/home/nvidia/code/fmt/build/CMakeFiles/CMakeOutput.log".
See also "/home/nvidia/code/fmt/build/CMakeFiles/CMakeError.log".
log file: /home/nvidia/code/fmt/build/CMakeFiles/CMakeOutput.log ``` Performing C++ SOURCE FILE Test CMAKE_HAVE_LIBC_PTHREAD failed with the following output: Change Dir: /home/nvidia/code/fmt/build/CMakeFiles/CMakeTmp

Run Build Command(s):/usr/bin/make -f Makefile cmTC_31ab2/fast && /usr/bin/make -f CMakeFiles/cmTC_31ab2.dir/build.make CMakeFiles/cmTC_31ab2.dir/build
make[1]: 进入目录“/home/nvidia/code/fmt/build/CMakeFiles/CMakeTmp”
Building CXX object CMakeFiles/cmTC_31ab2.dir/src.cxx.o
/usr/bin/c++ -DCMAKE_HAVE_LIBC_PTHREAD -o CMakeFiles/cmTC_31ab2.dir/src.cxx.o -c /home/nvidia/code/fmt/build/CMakeFiles/CMakeTmp/src.cxx
Linking CXX executable cmTC_31ab2
/usr/bin/cmake -E cmake_link_script CMakeFiles/cmTC_31ab2.dir/link.txt --verbose=1
/usr/bin/c++ CMakeFiles/cmTC_31ab2.dir/src.cxx.o -o cmTC_31ab2
CMakeFiles/cmTC_31ab2.dir/src.cxx.o:在函数‘main’中:
src.cxx:(.text+0x48):对‘pthread_create’未定义的引用
src.cxx:(.text+0x50):对‘pthread_detach’未定义的引用
src.cxx:(.text+0x58):对‘pthread_cancel’未定义的引用
src.cxx:(.text+0x64):对‘pthread_join’未定义的引用
src.cxx:(.text+0x74):对‘pthread_atfork’未定义的引用
collect2: error: ld returned 1 exit status
CMakeFiles/cmTC_31ab2.dir/build.make:98: recipe for target 'cmTC_31ab2' failed
make[1]: *** [cmTC_31ab2] Error 1
make[1]: 离开目录“/home/nvidia/code/fmt/build/CMakeFiles/CMakeTmp”
Makefile:127: recipe for target 'cmTC_31ab2/fast' failed
make: *** [cmTC_31ab2/fast] Error 2

Source file was:
#include <pthread.h>

static void* test_func(void* data)
{
return data;
}

int main(void)
{
pthread_t thread;
pthread_create(&thread, NULL, test_func, NULL);
pthread_detach(thread);
pthread_cancel(thread);
pthread_join(thread, NULL);
pthread_atfork(NULL, NULL, NULL);
pthread_exit(NULL);

return 0;
}

Determining if the function pthread_create exists in the pthreads failed with the following output:
Change Dir: /home/nvidia/code/fmt/build/CMakeFiles/CMakeTmp

Run Build Command(s):/usr/bin/make -f Makefile cmTC_8463f/fast && /usr/bin/make -f CMakeFiles/cmTC_8463f.dir/build.make CMakeFiles/cmTC_8463f.dir/build
make[1]: 进入目录“/home/nvidia/code/fmt/build/CMakeFiles/CMakeTmp”
Building CXX object CMakeFiles/cmTC_8463f.dir/CheckFunctionExists.cxx.o
/usr/bin/c++ -DCHECK_FUNCTION_EXISTS=pthread_create -o CMakeFiles/cmTC_8463f.dir/CheckFunctionExists.cxx.o -c /home/nvidia/code/fmt/build/CMakeFiles/CheckLibraryExists/CheckFunctionExists.cxx
Linking CXX executable cmTC_8463f
/usr/bin/cmake -E cmake_link_script CMakeFiles/cmTC_8463f.dir/link.txt --verbose=1
/usr/bin/c++ -DCHECK_FUNCTION_EXISTS=pthread_create CMakeFiles/cmTC_8463f.dir/CheckFunctionExists.cxx.o -o cmTC_8463f -lpthreads
/usr/bin/ld: 找不到 -lpthreads
collect2: error: ld returned 1 exit status
CMakeFiles/cmTC_8463f.dir/build.make:98: recipe for target 'cmTC_8463f' failed
make[1]: *** [cmTC_8463f] Error 1
make[1]: 离开目录“/home/nvidia/code/fmt/build/CMakeFiles/CMakeTmp”
Makefile:127: recipe for target 'cmTC_8463f/fast' failed
make: *** [cmTC_8463f/fast] Error 2


</details>
@ilyapopov
Copy link

FILE_SET argument for install command was only introduced in cmake 3.23. So either fmt should raise their cmake minimum requirement (which is now 3.8) or replace FILE_SET option with something else

@vitaut
Copy link
Contributor

vitaut commented Apr 12, 2023

Should be fixed in 75f3b1c.

@vitaut vitaut closed this as completed Apr 12, 2023
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

No branches or pull requests

3 participants