AIX 程序引用库时出ld: 0706-006的一种情况的解决

公司的产品涉及到AIX
在CI集成时,一个模块B怎么也连不上另一个模块A。

在模块A的 CMakeLists.txt里加了一堆参数,没有改善。

SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -g -Wall -fPIC")
SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ")
set(CMAKE_SHARED_LIBRARY_CREATE_C_FLAGS "${CMAKE_SHARED_LIBRARY_CREATE_C_FLAGS} -Wl,-G,-brtl,-bnoipath")
set(CMAKE_SHARED_LIBRARY_CREATE_CXX_FLAGS "${CMAKE_SHARED_LIBRARY_CREATE_CXX_FLAGS} -Wl,-G,-brtl,-bnoipath")
set(CMAKE_SHARED_LIBRARY_LINK_C_FLAGS "-Wl,-brtl,-bnoipath,-bexpall")  # +s, flag
set(CMAKE_SHARED_LIBRARY_LINK_CXX_FLAGS "-Wl,-brtl,-bnoipath,-bexpall")  # +s, flag
set(CMAKE_EXE_LINKER_FLAGS "-Wl,-brtl,-bnoipath,-bexpall")

突然看到 CMAKE_SHARED_LIBRARY_LINK_C_FLAGS,想起是是不是这个标志应该设到模块B的Makefile里。
一试,果然……

要公司能 统一用CMake,使用一套配置 就省事了。

你可能感兴趣的:(AIX)