CMake Ошибка при компиляции facebook/mysql, связана с странным путем
Я пытаюсь создать Myrocks (facebook / mysql commit [a93e134]: https://github.com/facebook/mysql-5.6/commit/a93e134dbf399030887cafa5cd0f98921a226769) на CentOS6.3 Но мне не удалось с этим сообщением
-- Running cmake version 3.2.2
-- MySQL 5.6.35
-- Packaging as: mysql-5.6.35-Linux-x86_64
-- HAVE_VISIBILITY_HIDDEN
-- ZSTD_INCLUDE_DIR /home/chinyajie/local/usr/local/include
-- ZSTD_LIBRARY /home/chinyajie/local/usr/local/lib/libzstd.so
-- ZSTD_INCLUDE_DIR /home/chinyajie/local/usr/local/include
-- ZSTD_LIBRARY /home/chinyajie/local/usr/local/lib/libzstd.so
test:PATH_TO_ZSTDZSTD_SYSTEM_LIBRARY
-- OPENSSL_INCLUDE_DIR = /usr/include
-- OPENSSL_LIBRARY = /usr/lib64/libssl.so
-- CRYPTO_LIBRARY = /usr/lib64/libcrypto.so
-- OPENSSL_MAJOR_VERSION = 1
-- SSL_LIBRARIES = /usr/lib64/libssl.so;/usr/lib64/libcrypto.so;dl
-- Using cmake version 3.2.2
-- Not building NDB
-- Library fbmysqlclient depends on OSLIBS -lpthread;/home/chinyajie/local/usr/local/lib/libzstd.so;m;rt;/usr/lib64/libssl.so;/usr/lib64/libcrypto.so;dl
-- Googletest was not found. gtest-based unit tests will be disabled. You can run cmake . -DENABLE_DOWNLOADS=1 to automatically download and build required components from source.
-- If you are inside a firewall, you may need to use an https proxy: export https_proxy=http://example.com:80
CMake Error in storage/rocksdb/CMakeLists.txt:
Cannot find source file:
../../rocksdb/usr/bin/make64
Tried extensions .c .C .c++ .cc .cpp .cxx .m .M .mm .h .hh .h++ .hm .hpp
.hxx .in .txx
CMake Error in storage/rocksdb/CMakeLists.txt:
Cannot find source file:
../../rocksdb/MAC=64
Tried extensions .c .C .c++ .cc .cpp .cxx .m .M .mm .h .hh .h++ .hm .hpp
.hxx .in .txx
CMake Error in storage/rocksdb/CMakeLists.txt:
Cannot find source file:
../../rocksdb/--makefile
Tried extensions .c .C .c++ .cc .cpp .cxx .m .M .mm .h .hh .h++ .hm .hpp
.hxx .in .txx
CMake Error in storage/rocksdb/CMakeLists.txt:
Cannot find source file:
../../rocksdb/tmp/tmp.QgIOMFCBRt
Tried extensions .c .C .c++ .cc .cpp .cxx .m .M .mm .h .hh .h++ .hm .hpp
.hxx .in .txx
-- Library mysqlserver depends on OSLIBS -lpthread;/home/chinyajie/local/usr/local/lib/libzstd.so;m;rt;/usr/lib64/libssl.so;/usr/lib64/libcrypto.so;dl;crypt;-lrt
-- CMAKE_BUILD_TYPE: RelWithDebInfo
-- COMPILE_DEFINITIONS: HAVE_CONFIG_H;ZSTD;HAVE_ZSTD_COMPRESS
-- CMAKE_C_FLAGS: -Wall -Wextra -Wformat-security -Wwrite-strings -std=c99
-- CMAKE_CXX_FLAGS: -Wall -Wextra -Wformat-security -Woverloaded-virtual -Wno-unused-parameter -std=c++11 -I /home/chinyajie/local/usr/local/include -I /home/chinyajie/local/usr/local/include
-- CMAKE_C_FLAGS_RELWITHDEBINFO: -O3 -g -fabi-version=2 -fno-omit-frame-pointer -fno-strict-aliasing -DDBUG_OFF
-- CMAKE_CXX_FLAGS_RELWITHDEBINFO: -O3 -g -fabi-version=2 -fno-omit-frame-pointer -fno-strict-aliasing -DDBUG_OFF
-- Configuring incomplete, errors occurred!
For
Cannot find source file:
../../rocksdb/MAC=64
Эти пути были странными , И я пытаюсь использовать MESSAGE(), чтобы напечатать журнал в файловом хранилище /rocksdb/CMakeLists.txt Однако, казалось, что все команды были завершены до того, как произошла ошибка.
1 ответ
Проблема вызвана make. На моем компьютере, когда я запускаю /usr/bin/make, он печатает /usr/bin/make64 MAC=64. Все это собрано "COMMAND env -i ${CMAKE_SOURCE_DIR}/storage/rocksdb/get_rocksdb_files.sh". Таким образом, решение состоит в том, чтобы отредактировать get_rocksdb_files.sh, изменить марку, которую он будет использовать.