2012-03-14 21 views
6

Trong ứng dụng của chúng tôi, chúng tôi sử dụng một số thư viện được liên kết động. Gần đây, chúng tôi đã cập nhật phiên bản của một trong các thư viện này. Các nhà phát triển của thư viện đó đang cung cấp một phương pháp chính kể từ phiên bản mới này (Làm gì hơn là in Hello World).Cách bỏ qua phương thức chính từ thư viện liên kết động trong C++

Vấn đề là chúng tôi đang sử dụng GTest và GMock, tạo ra phương pháp chính của riêng họ. Khi chúng ta chạy nhị phân thử nghiệm của mình, chúng ta chỉ nhận được "Hello World", do đó, phương thức chính sai được thực hiện.

Làm cách nào chúng tôi có thể buộc phương pháp chính của các thử nghiệm được sử dụng?

CẬP NHẬT: Điều này có vẻ là vấn đề GMock/GTest. Phương pháp chính thường được tạo ra, nhưng đây không phải là trường hợp vì nó tìm thấy một phương thức chính đã tồn tại ngay bây giờ.

Trả lời

5

Không có cách nào xung quanh trong trường hợp của bạn. Bạn sẽ phải xóa chính khỏi thư viện được chia sẻ. Nó đơn giản không thuộc về đó.

+0

Tôi hoàn toàn đồng ý với tuyên bố của bạn. Sẽ thật khủng khiếp khi khiến các nhà phát triển từ lib đó thay đổi nó. Tôi đã hy vọng cho một mẹo nhanh chóng và bẩn để "bỏ qua" phương pháp chính đó. –

+0

@ W.Goeman Nếu nó là một thư viện nguồn mở, thì bạn có thể tự mình làm điều đó, phải không? Nếu nó là một thư viện thương mại, thì họ nên làm điều đó. Trong mọi trường hợp, nó là một vấn đề nghiêm trọng cho một thư viện được chia sẻ để xác định chính(). –

+1

, chúng tôi đã liên lạc với các nhà phát triển từ thư viện đó và họ hứa sẽ sửa chữa. Một phương pháp chính trong thư viện có vẻ là một vấn đề nghiêm trọng thực sự :) –

0

Tôi gặp sự cố tương tự với hai thư viện có phương pháp chính, được giải quyết bằng cách thay đổi thứ tự của thư viện thành trình liên kết.

Các vấn đề liên quan